套接字错误的文档

时间:2016-10-24 08:35:59

标签: c++ qt sockets

我正在创建一个服务器 - 客户端应用程序,这个问题是在下面的代码中,我将无法绑定或无法打开套接字消息(请参阅下面的示例代码)。

sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0){
    qDebug() << "ERROR netserver: opening socket";
    //more code here
}

if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0){
   qDebug() << "ERROR netserver: binding to socket";
   //more code here
}

我知道使用getLastError()的C ++开发人员,但我找不到任何类型的套接字。

有没有人知道某个页面/教程/维基?

1 个答案:

答案 0 :(得分:0)

无法绑定/打开套接字通常具有(非开发人员)系统错误原因。这些并不总是得到很好的报道:(

可能发生这种情况的原因可能是套接字已被监听(即,您正在尝试运行同一程序的第二个实例),或者之前的套接字天堂已被正确关闭退出上一个程序/实例后的操作系统。有不同的方法来解决最后一个问题,而是检查它不是第一个问题;)

您可能会遇到这类错误的另一个原因是被请求的端口是特权端口,即。任何小于1024的东西,需要root(在Unix上)类型特权。

在Unix上,那里的朋友是&#34; netstat -an&#34; (我记得窗口有类似的命令)