Bonjour,
Alors voil� j'ai un souci pour un projet pour mon �cole. Je dois cr�er un client qui peut se connecter � un autre (sur un autre r�seau) avec la lib QT et un protocole UDP pour faire un VOIP.
J'arrive � lire et �crire sur la m�me QUdpsocket mais lorsque je veux �crire sur la socket d'un autre client cela ne marche pas, aucun paquet n'est re�u sur la socket.
J'ai essay� m�me dans un r�seau local et cela ne marche pas.
Pourtant si j'ai bien compris le fonctionnement de toutes les fonctions, QT: bind permet de lier un port � une socket et utiliser le signal readyread pour savoir si quelque chose a �t� �crit sur la socket, et de le r�cup�rer avec readDatagram.
Et j'utilise writeDatagram pour envoyer un paquet sur la socket de l'autre client.
Voici le code pour la connexion :
Voici le code de l'envoi de paquet :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 void UdpClient::connect(const std::string &addr, int port) { if (mQUdpSocket->bind(QHostAddress(QString(addr.c_str())), port, QUdpSocket::ShareAddress)== false) throw Throw_err("fail QUdpSocket::bind"); QObject::connect(mQUdpSocket, SIGNAL(readyRead()), this, SLOT(SocketReadable())); mIsReadable = false; }
Si quelqu'un a une id�e je suis preneur cela fait 3 jours que je suis bloqu� sur se probl�me
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 void UdpClient::send(const std::string &msg) { QByteArray data; data.append(msg.c_str()); mQUdpSocket->writeDatagram(data, QHostAddress(QString(buff_rec.host.c_str())), buff_rec.port); }![]()
Partager