如何定时发送大量udp数据?
目的:客户端定时发送4MB/s的UDP数据到服务器。
小弟的做法:用timeSetEvent()每1ms调用一次回调函数,然后在回调函数中用SendTo()发送4kB的数据(4kB/1ms = 4MB/s)。
timeSetEvent(1,1,SendProc,...);
SendProc()
{
char sendBuf[4096];
...
nBytesSend = SendTo(...);
if(nBytesSend == SOCKET_ERROR)
{
TRACE("...%d\n",GetLastError());
...
}
}
但是程序出现异常退出,如果改成5ms以上调用一次SendProc()就不会出现异常退出,也没见GetLastError()打印出什么错误信息。
UDP的SendTo()是不是工作在异步模式下面呀,是不是因为SendTo()来不及发送玩4kB的数据,就调用下一个SendTo(),造成阻塞
中断?
各位大侠有什么好的解决方案?谢谢了