局域网中,UDP传输在断线又恢复后,对方收不到数据了.UDP应该是无连接的呀,怎么会这样呢?附代码.
UINT WorkThread(LPVOID param)
{
SOCKET s;
sockaddr_in addrto;
WSADATA wsdata;
BOOL bsocket;
char *smsg="this is a test";
//Start SOCKET lib£¬version is 2.0
WSAStartup(0x0202,&wsdata);
s=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_OVERLAPPED);
bsocket=TRUE;
addrto.sin_family=AF_INET;
addrto.sin_addr.s_addr=inet_addr("192.168.10.255");//INADDR_BROADCAST;
addrto.sin_port=htons(5050);
bool opt=true;
//set this socket to Broadcast£¬
setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt));
int nlen=sizeof(addrto);
while(1)
{
Sleep(5000);
//sendto the broadcast address
int ret=sendto(s,smsg,256,0,(sockaddr*)&addrto,nlen);
if(ret==SOCKET_ERROR)
MessageBox(NULL,"Error!","Warming!",MB_OK);//cout<<WSAGetLastError()<<endl;
}
}
这段代码是线程执行.