winsock tcp 有关问题,200多字节,发送不完整
winsock tcp 问题,200多字节,发送不完整
使用tcp创建的阻塞性socket,从文本文件中读取内容进行发送,
行的长度长短不一,都是200多字节,
每次运行到第十行的时候就会出现发送不完整的问题,
报文长度是247字节,send函数返回也是247,但是用iptool抓包显示只发送了87字节,
之后,剩余的内容开始单字节发送,而且很慢,半天才发送处去一个报文,但每个报文服务端总能及时响应。
请问这是何故?
------解决方案--------------------
为什么要用“阻塞性socket”,这一般只用于教学。我怀疑是不是因为你用这种模式导致接收端无法及时接收。还有检查一下硬件环境。建议你找一些这方面的例子,有很多现成的socket模型可以用,网上的资料也很多。用别人的代码试试。
------解决方案--------------------
MSS(最大报文段段)是多少?估计是IP分片而已.
------解决方案--------------------
关闭nagle算法试试
------解决方案--------------------
send只管把数据交给内核就返回了,之后由内核把数据到链路.
------解决方案--------------------
你没有看看你抓的包里面的窗口大小啊
既然能够send 247,但实际发送87,可能是server端接收的问题
使用tcp创建的阻塞性socket,从文本文件中读取内容进行发送,
行的长度长短不一,都是200多字节,
每次运行到第十行的时候就会出现发送不完整的问题,
报文长度是247字节,send函数返回也是247,但是用iptool抓包显示只发送了87字节,
之后,剩余的内容开始单字节发送,而且很慢,半天才发送处去一个报文,但每个报文服务端总能及时响应。
请问这是何故?
------解决方案--------------------
为什么要用“阻塞性socket”,这一般只用于教学。我怀疑是不是因为你用这种模式导致接收端无法及时接收。还有检查一下硬件环境。建议你找一些这方面的例子,有很多现成的socket模型可以用,网上的资料也很多。用别人的代码试试。
------解决方案--------------------
MSS(最大报文段段)是多少?估计是IP分片而已.
------解决方案--------------------
关闭nagle算法试试
------解决方案--------------------
send只管把数据交给内核就返回了,之后由内核把数据到链路.
------解决方案--------------------
你没有看看你抓的包里面的窗口大小啊
既然能够send 247,但实际发送87,可能是server端接收的问题