在TCP/IP连接时,如果发送大量数据,在要求保证不丢包和到达先后顺序的情况下,在每个包中间是不是必须要Sleep ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TCP是可以保证的,但UDP不一定。 Sleep也不能完全保障,最好的方式是做应答,对方告诉你收完了,你发下一个,多好。 如果数据量大,socket缓冲区满,send只把buffer中一部分数据send出去,而没有返回错误,这时继续发送其它数据,就会出错。Sleep是解决的一个办法,但不是好办法。接收端如果recv足够快,send是可以不Sleep的。一般recv之后都有数据处理的操作,可以把这些操作和recv作成两个线程,以解决这个冲突。而且可以自己写一个辅助send函数,用以确认将buffer中全部数据发送成功,而不是一部分数据。请参考windows网络编程。 我和Mega1212(MeGa) 的想法一致.呵呵.在DELPHI中,为就是用开辟缓冲区实现的. \u60a8\u64cd 转化汉字用MessageBox输出? picture控件框画图 用WinExec打开Word文件 COM中如何传递SOCKET类型的参数? 菜鸟求救!!! 把光标移到一个对话框上,触发什么消息呢 关于潘爱民文章“ATL介绍“例子的编译问题! TransparentBitmap函数怎么把一张图片的背景色去掉 变成透明的 请问哪位大狭能够提供使用ESC指令来控制针式打印机退纸的代码,不胜感谢! 文本框控件的弊端 一些TCP协议穿透代理服务器的程序片断,希望对大家有所帮助。 如何全屏基于对话框的程序中一个静态控件,然后响应左键返回(50分)
Sleep是解决的一个办法,但不是好办法。接收端如果recv足够快,send是可以不Sleep的。一般recv之后都有数据处理的操作,可以把这些操作和recv作成两个线程,以解决这个冲突。而且可以自己写一个辅助send函数,用以确认将buffer中全部数据发送成功,而不是一部分数据。请参考windows网络编程。