我收到错误“无法绑定套接字”,错误: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