【问题标题】:Qt does not know accept for socket programmingQt 不知道接受套接字编程
【发布时间】:2014-09-13 12:49:38
【问题描述】:

如果我按下一个按钮,网络服务器应该会启动。但似乎编译器不知道正确的接受函数。这一行:

sockConnection = accept(hSocket, &remoteAddr, &iRemoteAddrLen);

得到这个错误:

没有匹配函数调用'NetConf::accept(SOCKET&, sockaddr_in*, socklen_t*)'

似乎接受函数是 Qt 对象的一部分,而不是我想使用的套接字。我阅读了有关包含“socket.h”的信息,但在我的系统上找不到它(Windows 7 - 64 位,Qt 库 4.8.6)。有什么建议吗?

【问题讨论】:

  • 请编辑您的问题并正确格式化代码。

标签: qt sockets


【解决方案1】:

Qt 是一个框架,它抽象出调用诸如接受之类的低级函数的要求。

如果你想要一个基于 TCP 的网络服务器,从 QTcpServer 类对象开始,然后调用它的 listen 函数

如果您已将 QObject 的插槽连接到 QTcpServer 的 newConnection 信号,则在建立连接时会通知您。

一旦收到新连接的通知,您就可以调用nextPendingConnection,它会返回一个QTcpSocket,您可以使用它通过Qt docs for this class 中描述的可用函数与客户端进行通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2010-10-16
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    相关资源
    最近更新 更多