私の質問についてはほとんどスレッドが見られませんでしたが、それでも問題を解決できないようで、応答が不十分です。それでは、私は2台のPCを持っています。簡単なテストデータで100個のUDPパケットを送信しなければならず、もう1台のマシンはデータグラムを読み取る必要があります。QUdpSocketクライアントとサーバーのリモートホストが接続できない
サーバは:次のように私のコードがある
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コードは私に失敗します。どんな助け?
もっと具体的に教えてください。 wiresharkで何を見ますか? 「最初にマシン1のIPへのバインディングが失敗する」という意味は何ですか? – Prabhu
私はリモートホストにバインドしています。例:ポート1234の192.168.32.150、マシン1、192.168.32.150から待機中のマシンに100データグラムを送ります。 2つのUDPソケットを接続する簡単な例が素晴らしいでしょう。しかし、この例は2台のコンピュータの間になければなりません。 –
2台のマシン間でデータグラムをほとんど交換しないのは難しいですか?答えはまだありませんか? –