Windows 套接字调用失败,错误代码为0
在win8系统上运行以下代码Windows 套接字调用失败,错误代码为0,windows,sockets,Windows,Sockets,在win8系统上运行以下代码 memset(&sin,0,sizeof(sin)); sin.sin_family = AF_INET; sin.sin_port = PORTNUM; sin.sin_addr.s_addr = inet_addr(argv[1)); if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) { printf("Could not obtain server socket (rc=%d): %s\n",
memset(&sin,0,sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = PORTNUM;
sin.sin_addr.s_addr = inet_addr(argv[1));
if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
printf("Could not obtain server socket (rc=%d): %s\n",
errno,strerror(errno));
return 0;
}
结果s被设置为-1,但errno被设置为0。有人能提出导致这种情况的原因吗?PORTNUM的值是多少?什么是完整输出(printf)?我将代码更改为sin.sin_port=htons(2044);运行此程序无法获得服务器套接字(rc=0):无错误我认为对于类型SOCK\u STREAM,协议无法实现。我尝试使用IPPROTO\u TCP,但结果相同。奇怪的是,您是否调用了
WSAStartup()
函数?