描述:
我的代码是这样的:
CRecvtelCtrl::CRecvtelCtrl()
{
InitializeIIDs(&IID_DRecvtel, &IID_DRecvtelEvents);
AfxBeginThread(recv,this,THREAD_PRIORITY_NORMAL,0,0,NULL);
// TODO: Initialize your control's instance data here.
}
UINT recv(LPVOID p)
{
// MessageBox(AfxGetMainWnd()->m_hWnd,"in recv",NULL,NULL);
CRecvtelCtrl *in=(CRecvtelCtrl*)p;
SOCKADDR_IN myaddr;
WSADATA wsa;
SOCKET mysock;
if(WSAStartup(0x0202,&wsa))
{
in->msg="初始话失败";
}
mysock=socket(AF_INET,SOCK_DGRAM,0);
if(mysock==INVALID_SOCKET)
in->msg="创建套接字失败!";
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(LOWORD(9121));
myaddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
if(bind(mysock,(sockaddr*)&myaddr,sizeof(myaddr))==SOCKET_ERROR)
in->msg="绑定失败!";
in->FireLoginstu(in->msg);
sockaddr_in sender;
char recvbuf[9];
memset(&recvbuf,0,sizeof(recvbuf));
CString tellast="";
for(;;)
{
int dwSender = sizeof(sender);
recvfrom(mysock, (char *)&recvbuf, sizeof(recvbuf), 0, (sockaddr *)&sender, &dwSender);
//MessageBox(AfxGetMainWnd()->m_hWnd,recvbuf,NULL,NULL);
CString mm=recvbuf;
if(tellast!=mm)
{
in->FireInfoin(mm);
}
Sleep(100);
tellast=mm;
memset(&recvbuf,0,sizeof(recvbuf));
}
return 0;
}
我查看,每次都是绑定失败。请问各位大哥是什么原因啊?应该怎么样处理?