采用UDP,两个发送端,一个接收端,怎么做才能不丢包?

Joan201401 2008-10-27 04:42:03
如题。两台机子分别发送UDP包,到同一台机子,目前丢包严重!了解的大虾出来吼一声哈,先谢了!
...全文
157 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yao-debo 2008-10-28
  • 打赏
  • 举报
回复
const int udp_recvbufsize = 384 * 1024 ;
int result = ::setsockopt(m_hSocket, SOL_SOCKET, SO_RCVBUF,
(char*)&udp_recvbufsize, sizeof(int));
// 如果是由于你发送的速率较高而引起的,如500kbit/s, 那么设置大点的UDP缓冲区是比较有效的.
chenyu2202863 2008-10-28
  • 打赏
  • 举报
回复
看看是不是你循环接收的,记住要Sleep下,不然CPU忙不过来
textbook 2008-10-28
  • 打赏
  • 举报
回复
到同一个机子的同一个端口?

加大recvfrom接收缓存
Joan201401 2008-10-28
  • 打赏
  • 举报
回复
谢谢大家的回复,问题解决了。我的问题在发送和接收机制逻辑有问题,改过来就没有丢包了:)
ok208043624 2008-10-27
  • 打赏
  • 举报
回复
嗯 自己定义重发机制吧
dirdirdir3 2008-10-27
  • 打赏
  • 举报
回复
和数量无关,UDP丢包是在正常不过的了..............如果要求安全性的话一般都是要应答的.
用户 昵称 2008-10-27
  • 打赏
  • 举报
回复
那要看你发的数量了,一般都是收不到回复就重发。
cnzdgs 2008-10-27
  • 打赏
  • 举报
回复
UDP丢包很正常,与发送端的数量无关,自己设计应答和重发机制。
cuomj 2008-10-27
  • 打赏
  • 举报
回复
客户端发送一个A包过去,服务器若接收到A包,返回一个A的确认包A',若客户端在一段时间内没有收到A'确认包,则视为丢包,重新发送A包
若服务器发送的A'包客户端未收到,则客户端认为服务器未收到A包,这种情况需要你自己设计处理下。

18,363

社区成员

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

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