异步BeginSend/EndSend不发送尽可能多的数据,因为它说
我有一个嵌入式设备,我正在玩;从PC发送一些数据。对于嵌入式设备,我不是在谈论WindowsCE/Linux,而是一款带有蹩脚的TCP-IP协议栈和几KB内存的微控制器。异步BeginSend/EndSend不发送尽可能多的数据,因为它说
当我尝试发送多个数据包并最终泛滥设备驱动程序时,会发生此问题。
什么问题?
PC上的BeginSend和EndSend都可以正常工作,并且在BeginSend中推送的数据的总长度与返回的EndSend长度相同。但是检查使用Wireshark发送的数据的数量[字节?]表明没有应该有的数据包数量,这个差别只有几KB。所以,BeginSend和EndSend的工作就好像他们完成了一样,但他们实际上没有。
我试过切换Socket.NoDelay,但它似乎不起作用。即使我设置Socket.NoDelay = true,发送更大的数据包,所以它看起来好像没有效果。
我当然使用TCP套接字。
从WebServer(IIS)发送大量数据的工作正常。
我应该知道有什么问题吗?
我有嵌入式设备,我正在玩从PC发送一些数据。惠普嵌入式设备我不是在谈论WindowsCE/Linux,而是微控制器白衣蹩脚的TCP-IP堆栈和几KB的RAM。
您是否正在从.Net应用程序发送此设备?
PC上的BeginSend和EndSend都可以正常工作,并且在BeginSend中推送的数据的总长度与返回的EndSend长度的总和相同。但是检查发送的数据的数量Wireshark显示没有应该有的数据包数量,如果有几KB,这个差别就会有所不同。
你是如何得出这个结论的?
从WebServer(IIS)发送很多数据的工作正常。
请说明一下你的意思?你是否通过HTTP发送到嵌入式设备并且工作正常?
有没有我应该注意的问题?
什么问题?嵌入式设备是否没有收到任何东西?如果是这样,你是如何得出这个结论的?
你为什么在谈论预期的数据包数量?使用TCP时,使用的数据包数量可能会有所不同。 – CodesInChaos 2011-04-08 13:26:02