Send要求使用char *或char[] 作为发送参数,而unicode是用 wchar_t *保存的,
如何发送unicode编码数据到服务器端,请专家指点,谢谢,以下方式无视
客户端unicode->ASCII
send
服务器端
ACSII -->Unicode
这种方式网络传输的是ACSII字符,我要求是在网络中传输Unicode字符
如何发送unicode编码数据到服务器端,请专家指点,谢谢,以下方式无视
客户端unicode->ASCII
send
服务器端
ACSII -->Unicode
这种方式网络传输的是ACSII字符,我要求是在网络中传输Unicode字符
接收到后再强制转化为wchar_t*。
反正网络传输的字节流,只要字节顺序对了就没问题
send(m_Socket,(char*)szMessage, _tcslen(szMessage)*sizeof(TCHAR));
关键看对侧如何解析!
所以你一个字节要存后面有多少字节数据,这样就不会因为碰到\0而中断了
2. 字符内码问题对1而言,在A机器上 1 内存表示为little-bian: 01 00 00 00
在B机器上,1的内存表为large-bian: 00 00 00 01这样直接传连续数据块,那边直接强转,拿到的数据并不是你想要的。
2. 字符内码即便在字节序相同的机器上,但操作系统不同,字符内码就不同。 如, windows的字符内码是双字节表示,sizeof(wchar_t *)= 2 而linux的字符内码是4字节表示,sizeof(wchar_t *)= 4 如果直接强转就会面临程序崩溃。所以网络应用协议一定要好好地设计。