【发布时间】:2011-11-01 04:41:51
【问题描述】:
我试图在 mingw 上创建一个 UDP 套接字,但 socket() 返回 -1,errno = 0。奇怪的。
我已经包含了winsock2.h。
最初我有编译错误undefined reference to socket@12,设置后
-lws2_32 和 -lwsock32 到 Code::Block 的 Linker Settings,编译成功。
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
RDF_LOG(kDEBUG, "sockfd %d ", sockfd);
if (sockfd < 0){
RDF_LOG(kERROR, "ERROR: %s , errno %d\n", strerror(errno), errno);
}
结果 --> sockfd -1 错误:没有错误,errno 0
好的,我将 RDF_LOG 改为 fprintf。
int tmp = 0;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
tmp = errno;
fprintf(stderr, "sockfd %d ", sockfd);
if (sockfd < 0){
fprintf(stderr, "socket: %s , errno %d\n", strerror(tmp), tmp);
}
返回的结果仍然是 --> sockfd -1 socket: No error , errno 0 难道mingw不支持errno??
【问题讨论】:
标签: c sockets mingw codeblocks winsock2