2014-07-22 4 views
0

Si j'appuie sur un bouton, un serveur de réseau devrait démarrer. Mais il semble que le compilateur ne connaisse pas la bonne fonction d'acceptation. Cette ligne:Qt ne sait pas accepter pour la programmation de socket

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

obtient cette erreur:

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

Il semble que l'accepter fonction fait partie d'un objet Qt et non la prise que je voudrais utiliser. J'ai lu à propos de l'inclusion "socket.h" mais ne peux pas le trouver sur mon système (Windows 7 - 64 bits, bibliothèque Qt 4.8.6). Aucune suggestion?

+0

S'il vous plaît modifier votre question et mettre en forme le code correctement. – Neeku

Répondre

2

Qt est un cadre qui résume l'exigence d'appeler des fonctions de bas niveau telles qu'accepter.

Si vous voulez un serveur de réseau basé sur TCP, commencer par un objet de classe QTcpServer et appeler sa listen fonction

Si vous avez connecté un slot de QObject à un signal newConnection du QTcpServer, vous serez informé lorsqu'un la connexion est faite. Une fois notifié d'une nouvelle connexion, vous appelez alors nextPendingConnection qui renvoie un QTcpSocket, que vous pouvez utiliser pour communiquer avec le client en utilisant ses fonctions disponibles comme décrit dans le Qt docs for this class.