私の質問に関するスレッドはほとんど見たことがありませんが、それでも問題を解決できないようで、返信も十分ではありません。タスクは次のとおりです。私は 2 台の PC を持っています。1 台は単純なテスト データを含む 100 個の udp パケットを送信する必要があり、もう 1 台のマシンはデータグラムを読み取る必要があります。私のコードは次のとおりです。
サーバー:
m_socket.udp = 新しい QUdpSocket(これ);
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()));
つまり... まず、マシン 1 の IP へのバインドが失敗します。その IP を指定してはなりません。
クライアントは単純です:
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"));
}
したがって、Wireshark で表示されるクライアント コードは、私のサーバー マシンに送られます。しかし、私のサーバーQtコードは私を失敗させます。ここで何か助けはありますか?