我收到錯誤「無法綁定套接字」,錯誤:10038,一個操作嘗試的東西不是套接字。套接字被創建,但我無法綁定它。UDP無法綁定套接字
struct sockaddr_in serverAddress ; // declared as global
struct sockaddr_in clientAddress ; // declared as global
int len=sizeof(struct sockaddr); // declared as global
SOCKET s = NULL ; // declared as global
memset (& serverAddress , 0 , sizeof (serverAddress));
serverAddress.sin_family = AF_UNSPEC ;
serverAddress.sin_addr.s_addr =INADDR_ANY;
serverAddress.sin_port = htons(12345);
if(s = socket(PF_INET,SOCK_DGRAM, IPPROTO_UDP) == INVALID_SOCKET)
{
printf (" Unable to create a socket \n");
printf (" Failed with error : %d\n%s\n", WSAGetLastError() ,
gai_strerror (WSAGetLastError()));
exit (1);
}
else
{
std::cout<<"CREATED"<<std::endl;
}
if(bind(s,(struct sockaddr *)&serverAddress,sizeof(serverAddress)) < 0)
{
printf (" Unable to bind socket \n");
printf (" Failed with error : %d\n%s\n", WSAGetLastError() ,
gai_strerror (WSAGetLastError()));
}
else
{
printf (" Bound to socket .\n");
}
那麼...標題和標籤中提到的* threading *與此有什麼關係?我沒有看到任何線程工作,如果我這樣做,如果它是一個偵聽器,我不希望多個套接字成功綁定到相同的端口。 – WhozCraig
我只創建一個線程。並在其中進行綁定。 il改變標題 – meWantToLearn
你不是'綁定到套接字'。你正試圖將一個套接字綁定到一個地址。 – EJP