VC Socket网络编程 UDP文件传输 接受端只能收到前面的8k数据 怎么回事儿? 各位大侠,问下VC下网络编程,服务器端UDP发送文件,不断循环发送数据,每次发送500个字节,直到文件发送完毕,客户端为什么只能接受大概前面的8K左右的数据,后面的都收不到,怎么回事儿,有好的解决办法吗?在循环体sendto语句后加Sleep(100)后,能完整接受,这不是根本的解决办法,速度慢的不行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很显然,是因为接收不过来导致了数据丢失,因为sleep以后就能完全接受了。如果你想传的更有保障,还是使用tcp协议传输吧。如果嫌慢,可以使用多线程来传输嘛!!!其他的估计也没什么好办法了! 把发送缓冲区设大点.如果windows下,设置1024*4。仅理论支持 UDP发送自己要定义发送包格式,发送完一个包后要有相应的应答包,当接收到应答包后再发送下一个包 发送文件用UDP而且还循环发送,你是不想发呢还是不想发呢。强烈建议你赶紧换TCP传。 各位帮我看下这个贴 谢谢啦http://topic.csdn.net/u/20111230/08/9289852f-cfbd-4649-8961-0455662e4ce9.html?19303 UDP发送自己要定义发送包格式,发送完一个包后要有相应的应答包,当接收到应答包后再发送下一个包 没错误,关键在udp是不可靠传输协议,发送的包如果接受端没来的及接受则包丢失。改进措施:自己设定发送协议,当接受端接收到包后再发送下个包。或者直接采用tcp协议,你的程序逻辑不用改。 各位大侠给我出谋划策,小弟谢了哈~我接着再调调看。另外我这个要求必须用UDP做,现在是在本地一台PC的127.0.0.1模拟服务器和客户端,UDP应该没那么脆弱,丢包肯定不是网络上的事儿,估计缓冲区的问题,不知道各位能不能给点儿详细的剖析,或者推荐本书啊,我觉得这个UDP只能接受前面8k是个普遍的问题,也是个经典的案例。 每发一个包Sleep(1)就行 这样也不影响速度 同时也不容易丢包 换种模式做为何不可?那要看你对数据可靠性的认可度,高则用tcp低则udp 想用UDP传文件的话,使用TFTP协议吧. 用UDP包肯定丢了或不完整在internet 中 得制定重发 和 确认机制 ,不过用tcp更好 文件传输如果不加控制处理用UDP好像不太合适,建议用tcp。tcp最好也要做下校验处理。 很显然,没建立自己的应答机制,你应该每sendto一次包,客户端给你个应答在发送第二个包,否则数据一大就接受不过来了 串口通信问题 如何将直线的宽度进行渐变填充,vc 请较关于alpha混合 变量声明 初级问题!!我现在能把一个列表框A里面的东西选到列表框B里面了!但是怎么把B里面的东西保存下来啊.让我打开的时候就是上一次选的东西! 初学者几个问题,高手帮忙哈! 如何将十进制数据转化为十六进制 MFC 程序怎么样做到界面非常流畅 有无获取文件夹路径的对话框类? 新建MFC应用程序报错如何解决 无窗口的flash绘图效率问题,如何实现局部绘图 深入浅出mfc书中关于类别型录网
如果你想传的更有保障,还是使用tcp协议传输吧。
如果嫌慢,可以使用多线程来传输嘛!!!其他的估计也没什么好办法了!
仅理论支持
改进措施:自己设定发送协议,当接受端接收到包后再发送下个包。
或者直接采用tcp协议,你的程序逻辑不用改。
我接着再调调看。
另外我这个要求必须用UDP做,现在是在本地一台PC的127.0.0.1模拟服务器和客户端,UDP应该
没那么脆弱,丢包肯定不是网络上的事儿,估计缓冲区的问题,不知道各位能不能给点儿详细的剖析,或者
推荐本书啊,我觉得这个UDP只能接受前面8k是个普遍的问题,也是个经典的案例。
这样也不影响速度 同时也不容易丢包