+ -
当前位置:首页 → 问答吧 → WINDOWS和LINUX 下网络接收数据问题!

WINDOWS和LINUX 下网络接收数据问题!

时间:2011-10-21

来源:互联网

windows和LINUX差不了多少的程序,select 模型。。。

我服务器recv 客户端发送过来的数据 。hello 这个字符串

但是我发现 linux 下 recv返回1000

但是在windows下返回5.。。

我在linux 下抓包后data字段显示的也是1000.。。

我RECV缓冲区大小是1024 。。。
这个是什么意思 ?

作者: aaadddzxc   发布时间: 2011-10-21

啊? 谁知道为什么不?

作者: aaadddzxc   发布时间: 2011-10-21

没这么邪乎吧

作者: thefirstz   发布时间: 2011-10-21

楼主检查客户端发送代码是不是用了send 1000或者send strlen(buffer)这种愚蠢的代码把。

作者: qq120848369   发布时间: 2011-10-21

没有,我iLen 就算我传递 6 抓包后 DATA段也是1000、、、、为什哦?

C/C++ code

 if (-1 == (m_SendSize = send(m_Socket,szSendBuffer,iLen,0)))
        {
            return -1;
        }




我在linux 下客户端发送数据 服务器 recv 后就是1000大小,抓包后客户端和服务端字段也是1000
但是WINDOWS下却很正常。。。

但是无论在LINUX和WINDOWS下 客户端发送 HELLO 我都是打印的HELLO 我看了下数据包 好像协议栈给我填充了一样 为什么会这样?

作者: aaadddzxc   发布时间: 2011-10-21

szSendBuffer和iLen这两个变量的赋值代码贴一下看看.

作者: qq120848369   发布时间: 2011-10-21

这个..我先去查一下.

作者: qq120848369   发布时间: 2011-10-21

刚才试了下,又好了,为嘛在公司是那样呢 算了

作者: aaadddzxc   发布时间: 2011-10-21

发送的 hello 长度传递的 6 ...

刚才跑了下 又正常了!!!都没改过代码!

作者: aaadddzxc   发布时间: 2011-10-21

热门下载

更多