TCP为什么接收到的数据大于发送的数据长度? 本帖最后由 VisualEleven 于 2012-01-07 16:47:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int ret = recv(m_SockClient,pRecvBuf + num ,500*1024,0);改成int ret = recv(m_SockClient,pRecvBuf + num ,500*1024 - num,0); 这个不奇怪吧,TCP是流协议,多次send的数据可能一次到接收端,recv一次就接收尽可能多的数据。send和recv并不是一一对应的,可能send多次,recv一次。 对,SOCK_STREAM是流式的,建议楼主看看底层代码,TCP有自己的数据校验,保证的是你的数据顺序到达,但是未必是按你的大小来到达. 请教一个VC往EXCEL写数据的小问题 ATL控件如何添加StockProperties属性 [奇怪]执行到打开文件时就死那,异常都没有... VC2005带的Platform SDK是不是比原来少了些东东? 对话框中显示文本的问题 Combo Box控件的问题 如何调试ASP的Com组件 状态栏的问题 怎样制作cuteftp pro的界面? VC++ 和 Winsock网络程序求救。100分,不够可商量。 关于内存地址空间? 我想写倒序记录,现在是顺序,请帮忙修改!
改成
int ret = recv(m_SockClient,pRecvBuf + num ,500*1024 - num,0);
send和recv并不是一一对应的,可能send多次,recv一次。