2014-07-22 24 views
0

如果我按一个按钮,网络服务器应该开始。但似乎编译器并不知道正确的接受函数。这条线:Qt不知道接受套接字编程

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

得到这个错误:

no matching function for call to 'NetConf::accept(SOCKET&, sockaddr_in*, socklen_t*)'

看来,接受功能是Qt对象的一部分,而不是一个套接字我想用。我读过关于包括“socket.h”,但无法在我的系统上找到它(Windows 7 - 64位,Qt库4.8.6)。有什么建议么?

+0

请编辑您的问题并正确设置代码格式。 – Neeku

回答

2

Qt是一个抽象掉调用低级函数(如accept)的需求的框架。

如果你想要一个基于TCP的网络服务器,开始一个QTcpServer类对象,并调用其listen功能

如果您已连接一个QObject的槽到QTcpServer既可的newConnection信号,会通知您,当连接已完成。

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