Hal*_*ate 7 c++ sockets networking udp
这是我的程序输出
sending agent update
Created new player
Identified
sending agent update
Physics: 2 ticks this frame
time= 200
time= 300
***Packet Dropped: 2:10 ***
***Packet Dropped: 2:11 ***
***Packet Dropped: 2:12 ***
***Packet Dropped: 2:13 ***
***Packet Dropped: 2:14 ***
***Packet Dropped: 2:15 ***
***Packet Dropped: 2:16 ***
***Packet Dropped: 2:17 ***
***Packet Dropped: 2:18 ***
***Packet Dropped: 2:19 ***
***Packet Dropped: 2:20 ***
***Packet Dropped: 2:21 ***
time= 400
Physics: 2 ticks this frame
time= 500
Physics: 2 ticks this frame
Run Code Online (Sandbox Code Playgroud)
将数据包从本地主机发送到本地主机,数据包正在丢弃.这只发生在开头附近.前10个左右的数据包通过,然后数据包丢失.连续5到40个包.然后数据包停止下降.
这有什么理由发生吗?
更新:
以下代码修复了该问题.
int buffsize = 65536; // 65536
setsockopt(socket, SOL_SOCKET, SO_RCVBUF, (void*)&buffsize, sizeof(buffsize));
Run Code Online (Sandbox Code Playgroud)
我发送的数据包太快,超出了Windows默认的接收缓冲区,只有8 KB.增加缓冲区大小可以解决问题.