我又来了。。。Socket系统缓冲区不足或队列已满的问题 这个或许对你有帮助http://bbs.csdn.net/topics/310027936 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似是说发送或接收太快就会出现这个错误,但还是有点不理解因为我是顺序接收的,即等一次Receive函数返回后再进行下一次的Receive,那么无论一次Receive的Size有多大,只要Receive函数返回,就表明该次接收已经正常完成了,下一次的Receive应该不受任何影响才对,为什么出现这个错误会受Receive函数的Size参数影响呢? 1.自己拆开多个包2.BeginReceive EndReceive 嗯,自己拆包是可以的,但我觉得拆成多个包分开进行发送接收也存在循环发送和接收的问题,因为我总共就是要发送接收这么多的东西,除非在发送和接收拆分后的包时利用进行一定量的延时。至于异步接收,由于在一次异步接收时同样可能不会接收到我所要的所有数据,因此可能也需要多次异步接收才能完成,控制上稍显麻烦一点,至于多次异步接收的时候还会不会出现 “由于系统缓冲区空间不足或队列已满,不能执行套接字上操作 的问题” 这个问题,我倒是没测试过不要“觉得”,你还是实际去测试一下再说。每一次Send不要大于10M。 另外,建议你最好使用异步 Receive,而不是同步 Receive。这样才能保证效率和稳定性。 不用理解了,只要是说“发送或接收太快就会出现这个错误”,那一定是他自己的程序设计有严重问题,而把问题找了个无关的理由。老大,你说了每一次Send不要大于10M,但我如果要发送80M的东西怎么办,我只能分8次发送。是的,我可以分8次发送,但我还是要用8次来循环发送,关键问题就是现在循环发送的时候出现了这个错误(其实我是接收的时候出了错误),那么请问这个程序设计上的严重问题在哪?是应该在每次发送之间要延时吗?如果是这样,那么请问这个延时的依据在哪?延时多少合适? 对于流设备,在分时操作系统上,你循环读取数据时会存在和硬件时序对不准的情况,比如底层还在接收,你已经开始获取缓存字节数,然后读取,等下一个周期,这之间可能会有大量数据读到,超出部分丢失或是其他小问题,丢包,错误的情况多。异步接收其实反而是软件和硬件都同步了,硬件一段时间的读取完成,触发信号,你读取线程开始读,丢和误少很多。没更多的理论依据,这是我猜的,之前做的一个socket功能测试结果如此。 客户端上传图片到服务器怎么实现自动压缩图片的大小那?? 如何把.txt文件放到文件夹中!????? 又是100分,还是摄像头捕获照相问题,散了几百分还没有解决.再问,再加分 有没有高手有这个的源码,怎么实现的 关于样试表问题? 不知道大家有没有遇到过这个奇怪的问题~ 新手求助!!!! 请问有用.net做大数据的吗? .Net2002的CrystalReportView控件在.Net2003中出错. 各位高手请近来帮忙! 求解 DataGridView中的 DataGridViewComboBoxColumn如何绑定值?? c#调用dll慢
因为我是顺序接收的,即等一次Receive函数返回后再进行下一次的Receive,
那么无论一次Receive的Size有多大,只要Receive函数返回,就表明该次接收已经正常完成了,
下一次的Receive应该不受任何影响才对,
为什么出现这个错误会受Receive函数的Size参数影响呢?
2.BeginReceive
EndReceive
嗯,自己拆包是可以的,但我觉得拆成多个包分开进行发送接收也存在循环发送和接收的问题,因为我总共就是要发送接收这么多的东西,除非在发送和接收拆分后的包时利用进行一定量的延时。至于异步接收,由于在一次异步接收时同样可能不会接收到我所要的所有数据,因此可能也需要多次异步接收才能完成,控制上稍显麻烦一点,至于多次异步接收的时候还会不会出现 “由于系统缓冲区空间不足或队列已满,不能执行套接字上操作 的问题” 这个问题,我倒是没测试过不要“觉得”,你还是实际去测试一下再说。每一次Send不要大于10M。
不用理解了,只要是说“发送或接收太快就会出现这个错误”,那一定是他自己的程序设计有严重问题,而把问题找了个无关的理由。老大,你说了每一次Send不要大于10M,但我如果要发送80M的东西怎么办,我只能分8次发送。是的,我可以分8次发送,但我还是要用8次来循环发送,关键问题就是现在循环发送的时候出现了这个错误(其实我是接收的时候出了错误),那么请问这个程序设计上的严重问题在哪?是应该在每次发送之间要延时吗?如果是这样,那么请问这个延时的依据在哪?延时多少合适?
异步接收其实反而是软件和硬件都同步了,硬件一段时间的读取完成,触发信号,你读取线程开始读,丢和误少很多。没更多的理论依据,这是我猜的,之前做的一个socket功能测试结果如此。