UDP数据传输,收不到数据.
h_socksend= socket(AF_INET,SOCK_DGRAM,0);//发送端套接字设置
BOOL bsocket=TRUE;
SendLocalAddr.sin_family=AF_INET;
SendLocalAddr.sin_addr.s_addr=INADDR_BROADCAST;
SendLocalAddr.sin_port=htons(9050);
bool opt=true;
setsockopt(h_socksend,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt));
sendto(h_socksend, (char*)senddata, len, 0, (sockaddr*)&SendLocalAddr, nlen);//将senddata内的数据发送
h_sock = socket(AF_INET,SOCK_DGRAM,0);//接收端套接字
BOOL bBroadcast=TRUE;
int ret = setsockopt(h_sock,SOL_SOCKET,SO_BROADCAST,(const char*)&bBroadcast,sizeof(int));
int nRecvBuf=20*1024;//设置为20K
ret = setsockopt(h_sock, SOL_SOCKET, SO_RCVBUF, (const char *)&nRecvBuf,sizeof(nRecvBuf));
cli.sin_addr.s_addr = htonl(INADDR_ANY);
cli.sin_family = AF_INET;
cli.sin_port = htons(9050);
ret = bind(h_sock,(SOCKADDR*)&cli,sizeof(cli));
WSAAsyncSelect(h_sock, hwnd, WM_SOCKET, FD_READ);//利用WSAAsySelect创建消息响应函数,当网络中出现FD_READ时,产生WM_SOCKET消息.
问题是,接收端根本就没有FD_READ标志出现.
这是为什么呢?(senddata是byte型的数组)