udp广播接收问题。
初始化代码:
int InitNetCard0(HWND hWd,char *Address)
{
BOOL optval=TRUE;
int errno;
if((s1=socket(AF_INET,SOCK_DGRAM,0))==INVALID_SOCKET)
{
AfxMessageBox("0号网卡的套接口初始化失败!");
return 1;
}
if(setsockopt(s1,SOL_SOCKET,SO_REUSEADDR,(char FAR*)&optval,sizeof(optval))==SOCKET_ERROR)
{
AfxMessageBox("0号网卡的套接口地址重用设置失败!");
closesocket(s1);
return 1;
}
soin.sin_family =AF_INET;
soin.sin_port =htons(port);
soin.sin_addr.s_addr =inet_addr(Address);
if(bind(s1,(LPSOCKADDR)&soin,sizeof(soin))==SOCKET_ERROR)
{
AfxMessageBox("0号网卡的套接口绑定失败!");
closesocket(s1);
return 1;
}
if(setsockopt(s1,SOL_SOCKET,SO_BROADCAST,(char FAR*)&optval,sizeof(optval))==SOCKET_ERROR)
{
AfxMessageBox("0号网卡的套接口广播设定失败!");
closesocket(s1);
return 1;
}
if(WSAAsyncSelect(s1,hWd,WM_MCAST_NETREAD0,FD_READ)==SOCKET_ERROR)
{
AfxMessageBox("0号网卡的异步选择设定失败!");
closesocket(s1);
return 1;
}
return 0;
}
当接收消息触发时进行数据的接收,但是这时接收的数据是否完整(发送端发送的完整数据)?
如果不完整怎样判断我收的到udp广播数据是完整的?