在每次recv()前想先清空socket缓冲区,不知道有没有办法?

vagabondkq 2003-03-27 11:07:02
服务器程序中send()的频率比客户端recv()的频率要快,所以我想在客户端recv()之前先清空一下接收输入数据缓冲区。
请问大家有办法做到吗?
十分感谢!
...全文
937 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vagabondkq 2003-03-28
  • 打赏
  • 举报
回复
问题已解决。
Sander说的并不完全对,但给了我很大的启示。其实我把buf设的大些也一样可以达到清空接收缓冲区的作用。
感谢各位。
jemmylau 2003-03-27
  • 打赏
  • 举报
回复
你可以在send后Sleep()一下,不就可以了
shesh 2003-03-27
  • 打赏
  • 举报
回复
办法是有,不过不建议,SETSOCKOPT里就有.
yanhuahui 2003-03-27
  • 打赏
  • 举报
回复
memset函数
Sander 2003-03-27
  • 打赏
  • 举报
回复
不存在,慢快,网络协议会自动调节的。
以上问题是你没有send完,就再send.
你不需保证要send的数量,等于实际send的数量 才能再send.
接收也要一次把缓冲区的收完。
vagabondkq 2003-03-27
  • 打赏
  • 举报
回复
现在我的服务器和客户端程序都是延时1秒之后发或接的,但是数据仍然不对。
只有第一次和第二次的数据是对的。请大侠帮忙看看。
比如服务器发出:"255,1000,5000,10000,30000,32000,"
客户端接收到:
第一次:"255,1000,5000,10000,30000,32000,烫烫"
第二次:"255,1000,5000,10000,30000,32000,255,$"
第三次:"1000,5000,10000,30000,32000,255,1000$"
第四次:",5000,10000,30000,32000,255,1000,500$"
第五次:"0,10000,30000,32000,255,1000,5000,10$"
.......
我认为就是没有清空接收数据缓冲区的原因,不知道这么想到底对不对,那么该如何解决?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧