tcp传输结构体字节序问题? 本帖最后由 VisualEleven 于 2011-04-28 19:43:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 网络字节顺序是指TCP/IP(网络层、传输层)解析部分需要遵守的字节顺序 我们在填充SOCKADDR_IN结构时 需要转换为网络字节顺序 使用send、recv是传输应用层的消息 所以不需要转换 另外当使用原始套接字时自己填充IP头、TCP头、UDP头时需要转换 char buffer[bufsize];recv(sock, buffer, bufsize, 0);char *pMsg = new stMsg;pMsg = (stMsg*)buffer;---------------------------囧,你修改了pMsg的指针的值,你没有办法delete操作了,内存泄露问题来了 你发送时都知道memmove,接收时也可以试试啊char *pMsg = new stMsg;memmove(stMsg, buf, strlen(buf));不过结构体sizeof()的时候把指针也包括进去了,怎么能正确解析结构体我还不清楚,关注~~~ 此处send、recv解释可能有误 LZ居然在C++也发了一贴 O(∩_∩)O哈哈~ 那贴一大虾回复说recv、send内部也有做字节转换 想了想 应该是的 之所以有网络字节 是因为需要在不同主机间通信 分享一个我写的VC/MFC中SQL 2000数据库的分页控件,显示效果为1 2 3 4 5 6 ... 98 99等。 mfc文档和类视图 数据关联问题 CStdioFile 读取汉字乱码问题(急) 按钮问题 关于机器码的问题 怎么把结构体某个域的地址保存到变量里? 使用InitExtDll();添加dll,是不是需要include什么啊 求助一个理想的显示饼图形的3D控件 郁闷中,散分讨论! 高分求解 各位兄弟帮帮忙啊! 请问一个mfc ADO连接数据库字符串的问题? 图形界面问题-----如何给CComboBox贴图
另外当使用原始套接字时自己填充IP头、TCP头、UDP头时需要转换
recv(sock, buffer, bufsize, 0);
char *pMsg = new stMsg;
pMsg = (stMsg*)buffer;
---------------------------
囧,你修改了pMsg的指针的值,你没有办法delete操作了,内存泄露问题来了
char *pMsg = new stMsg;
memmove(stMsg, buf, strlen(buf));不过结构体sizeof()的时候把指针也包括进去了,怎么能正确解析结构体我还不清楚,关注~~~