Ich habe einige Threads über meine Frage gesehen, aber, noch kann ich nicht scheinen, das Problem zu lösen, und die Antworten sind nicht ausreichend. Also hier ist die Aufgabe: Ich habe 2 PCs. Man muss 100 UDP-Pakete mit einfachen Testdaten übertragen und die andere Maschine muss die Datagramme lesen. Mein Code ist wie folgt:QUdpSocket Client-Server Remote-Host nicht verbindbar
Der Server:
m_socket.udp = new QUdpSocket (this);
if (m_socket.udp->bind(QHostAddress("192.168.32.154"), 1234)) {
m_socket.udp->connectToHost(QHostAddress("192.168.32.154"), 1234);
m_socket.udp->waitForConnected();
}
connect(m_socket.udp, SIGNAL(connected()),
this, SLOT(handleConnection()));
connect(m_socket.udp, SIGNAL(readyRead()),
this, SLOT(readyReadUdp()));
Also ... zuerst - die Bindung an IP von Maschine 1 schlägt fehl. Ich darf seine IP nicht angeben.
Der Client ist einfach:
p_socket = new QUdpSocket(this);
p_socket->connectToHost(QHostAddress("192.168.32.94"), 1234);
connect(p_socket, SIGNAL(connected()), this, SLOT(writeDgram()));
....
void writeDgram() {
p_socket->write(QByteArray("test"));
}
So Client-Code, wie in wireshark gesehen, auf meinen Server Maschine kommt. Aber mein Server Qt Code versagt mich. Irgendwelche Hilfe hier?
Könnten Sie bitte genauer sein? Was siehst du in Wireshark? Was meinst du mit "zuerst - die Bindung an IP von Maschine 1 schlägt fehl"? – Prabhu
Ich bin an den Remote-Host gebunden, zB: 192.168.32.150 mit Port 1234, das wäre Maschine 1, und von 192.168.32.150 sende ich 100 Datagramme an die Maschine, die wartet. Ein einfaches Beispiel, das 2 UDP-Sockets verbindet, wäre großartig. Aber das Beispiel muss zwischen 2 Computern sein. –
Ist es so kompliziert, nur wenige Datagramme zwischen zwei Rechnern auszutauschen? Noch keine Antworten? –