请教:bind()语句怎么错了?
请教高手问题:
为什么bind()语句总是出错,其他代码无误。error №:10022 ,是什么错误信息?
__fastcall TListenThread::TListenThread(PROTO m_ProtocolA, UINT m_PortA, bool CreateSuspended):TThread(FALSE)
{
m_Socket = INVALID_SOCKET;
m_Port = m_PortA ;
m_Protocol = m_ProtocolA;
szTmp[0] = '\0';
::ZeroMemory(&wsaData,sizeof(WSAData));
::ZeroMemory(&server,sizeof(struct sockaddr_in));
FreeOnTerminate = TRUE;
}
WSAStartup(version,&wsaData);
m_Socket = socket(AF_INET,SOCK_STREAM,0);
server.sin_family = AF_INET;
server.sin_port = htons(m_Port);
server.sin_addr.S_un.S_addr = INADDR_ANY;
(以上代码通过编译,节选部分帖出)
void __fastcall TListenThread::BindListenSocket()
{
if(bind(m_Socket,(sockaddr*)&server,sizeof(struct sockaddr_in))) //bind语句返回值总不为零?
{
sprintf(szTmp,"Failed to bind socket,error no:%d",::WSAGetLastError());
::MessageBox(0,szTmp,"Error!",MB_OK+MB_ICONERROR);
DoError();
return;
}
}