初学C++和网络编程
最近在做个C++和C#间socket通讯的程序,本来对C++就不熟悉,对C++的网络编程就更不熟悉了,结果被传输中文时乱码的问题搞了好几天
参考了以下文章终于解决:
http://www.80edu.com/html/it/net/jishu/9346.html
http://www.cppblog.com/sunraiing9/archive/2007/03/21/20281.html
还有好几篇比较久之前看到的,内容跟上面的差不多
具体解决方案如下:
C++端:
//buf数组为char型
//bufU数组为WCHAR型
//使用的size可根据需要动态调整
接收时,从C#端发过来的是Unicode编码的字节数组,所以使用WideCharToMultiByte进行转换:
接收:
bytes = recv(*socket, (char *)bufU, sizeof(buf), 0);
转换:
WideCharToMultiByte(CP_OEMCP, 0, bufU, -1,