各位,这段udp程序写的对么?这个已经是很成熟的代码了。
1:为什么“TotalLen += sendlen;”之后,指针没有响应的增加?
2:为什么“usleep(50000);”,为什么在发送结束后需要加一个延时?
SINT32
Net_Server_SendData (SINT32 Socket, SINT8 * SendBuf, SINT32 MsgLen,
BOOL Close)
{
SINT32 TotalLen = 0;
while (TotalLen < MsgLen)
{
SINT32 sendlen = send (Socket, SendBuf, MsgLen - TotalLen, 0);
printf("%s %s %d, send %d byte to client;\n",
__FILE__ , __FUNCTION__, __LINE__, sendlen);fflush(stdout);
if (sendlen < 0)
{
perror ("send");
Net_Server_CloseSocket (Socket);
return -1;
}
TotalLen += sendlen;
}
if (Close)
{
Net_Server_CloseSocket (Socket);
}
usleep(50000);
return TotalLen;
}
--
[m [33m※ 来源:·水木社区
http://www.newsmth.net·[FROM: 113.140.30.*] [m