奇数socket()错误 - 返回-1,但是errno = ERROR_SUCCESS

avi*_*ldg 1 c c++ sockets errno

我正在使用C/C++(混合)在Linux机器上开发专用游戏服务器.我有以下代码片段:

int sockfd=socket(AI_INET, SOCK_DGRAM, 0);
if(sockfd==-1)
{
    int err=errno;
    fprintf(stderr,"%s",strerror(err));
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是套接字返回-1(意味着失败)并且正在打印错误字符串,但它是"成功"(ERROR_SUCCESS).

其他说明:

  • 我在端口> 1024上请求套接字(脱离上下文,但我想提到)
  • 我正在以超级用户身份执行应用程序

avi*_*ldg 11

我觉得非常愚蠢.仔细查看我的代码,在我的开发计算机上显示:

if(sockfd==-1);
...
Run Code Online (Sandbox Code Playgroud)

  • 你不是第一个这样做的人,也不是最后一个:-) (5认同)
  • 让这成为一个教训:始终复制并粘贴*real*代码,以演示您所询问的问题. (3认同)