C++ UDP Socket发送速率

我写了一个UDP发送数据的程序,每个包设置为1024B,如果不控制发送,一直循环
sendto,接收端就会丢包,如果一直sendto一次就Sleep(1),发送速度又太慢了,
网络发送速率才65KB/s,求大神有没有什么好的解决办法?

/***********
服务端程序
************/
#include <Winsock2.h>
#include <stdio.h>

void main(){
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 1, 1 );

......
答案就在这里:C++Socket(UDP)
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

发送的包较大,超过接受者缓存导致丢包:包超过mtu size数倍,几个大的udp包可能会超过接收者的缓冲,导致丢包。这种情况可以设置socket接收缓冲。以前遇到过这种问题,把接收缓冲设置成64K试试。
int nRecvBuf=64*1024;//设置为64K
setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));
具体设置代码可以参考下面链接:
http://blog.sina.com.cn/s/blog_a459dcf5010153mp.html
另外,发送速度太快确实不行,你可以用usleep或者nanosleep设置更短的延迟

发送端可以,发送五次左右,再Sleep

http://www.educity.cn/wenda/509114.html