windows socket 编程:bind 错误码10038 如何解决?
来源:百度知道 编辑:UC知道 时间:2024/09/23 03:21:42
源代码如下:
//******全局变量******//
SOCKET SvrFd;
sockaddr_in ServAddr;
//************主函数*************//
int main(int argc, char* argv[])
{
WORD wVersionRequested; //版本号
WSADATA wsaData; //数据
int err;
UNLNG phandle;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if( err != 0)
{
return ERROR;
}
if(LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion) != 1)
{
WSACleanup();
return ERROR;
}
//创建socket套接字;
SvrFd = socket(AF_INET, SOCK_STREAM, 0);
err = WSAGetLastError();
if (err != 0)
{
perror("socket");
exit(1);
}
//初始化协议地址
char *IPAddr = "127.0.0.1";
ServAddr.sin_family = AF_INET;
ServAddr.sin_addr.s_addr = inet_addr(IPAddr);
ServAddr.sin_port = htons(4235);
memset(ServAddr.sin_zero, 0, sizeof
//******全局变量******//
SOCKET SvrFd;
sockaddr_in ServAddr;
//************主函数*************//
int main(int argc, char* argv[])
{
WORD wVersionRequested; //版本号
WSADATA wsaData; //数据
int err;
UNLNG phandle;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if( err != 0)
{
return ERROR;
}
if(LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion) != 1)
{
WSACleanup();
return ERROR;
}
//创建socket套接字;
SvrFd = socket(AF_INET, SOCK_STREAM, 0);
err = WSAGetLastError();
if (err != 0)
{
perror("socket");
exit(1);
}
//初始化协议地址
char *IPAddr = "127.0.0.1";
ServAddr.sin_family = AF_INET;
ServAddr.sin_addr.s_addr = inet_addr(IPAddr);
ServAddr.sin_port = htons(4235);
memset(ServAddr.sin_zero, 0, sizeof
memset(ServAddr.sin_zero, 0, sizeof(struct sockaddr_in));
您真有趣……
WSAENOTSOCK
(10038)
Socket operation on nonsocket.
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.
memset(ServAddr.sin_zero, 0, sizeof(struct sockaddr_in));
这个地方会破坏栈的