問題タブ [qudpsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
113 参照

c++ - シリアル化せずに UDP 経由で構造体を送信する

構造体を送信したい:

QUpdSocket 経由。

連載はしたくありません(なのでノーアンサーでお願いしQDataStreamます…^^)。

これはうまくいきますか?:

0 投票する
1 に答える
889 参照

c++ - QUdpSocket 高速メッセージ読み取り

みんな!

QUdpSocket と readyRead シグナルの操作に奇妙な問題があります。思ったように機能していないと言えます。

QUdpSocket を作成してポートにバインドし、readyRead シグナルをスロットに接続して、以下のように保留中のデータグラムをすべて読み取ります。

そして私のreadBuffersコード

Qt::QueuedConnection を使用して問題を解決したと思っていましたが、今日、プロジェクトに別のウィジェットを追加し、100 ミリ秒ごとに更新しました。方法はわかりませんが、スロットが 2 秒後に信号を出さなくなりました。

タイマー間隔または送信データ レートを 1 秒に変更すると、すべて問題ありません。

すべてのクラスとウィジェットはメイン プログラムのスレッドにあり、別のスレッドは使用していませんが、使用する必要があるようです。

では、Qt eventloop によってシグナルがドロップされたのはなぜですか?

ソケットの状態を確認しましたが、バウンド後に変化しませんでした。

前もって感謝します

0 投票する
2 に答える
719 参照

qt - QUdpSocket クライアント サーバー リモート ホストに接続できません

私の質問に関するスレッドはほとんど見たことがありませんが、それでも問題を解決できないようで、返信も十分ではありません。タスクは次のとおりです。私は 2 台の PC を持っています。1 台は単純なテスト データを含む 100 個の udp パケットを送信する必要があり、もう 1 台のマシンはデータグラムを読み取る必要があります。私のコードは次のとおりです。

サーバー:

m_socket.udp = 新しい QUdpSocket(これ);

つまり... まず、マシン 1 の IP へのバインドが失敗します。その IP を指定してはなりません。

クライアントは単純です:

したがって、Wireshark で表示されるクライアント コードは、私のサーバー マシンに送られます。しかし、私のサーバーQtコードは私を失敗させます。ここで何か助けはありますか?

0 投票する
1 に答える
96 参照

qtcpserver - QUdpSocket を使用して QTcpServer に接続できますか?

私はネットワーキングの世界に非常に慣れていないので、現在 newConnection シグナルで動作している QTcpserver を持っていますが、 QTcpServer で QUdpSocket を使用できるかどうか疑問に思っていましたか? これはまったく可能ですか?

0 投票する
2 に答える
2301 参照

c++ - 非GUIスレッドでQUdpSocketを適切に作成するには? Readyread が発行されない

以下をラップするネットワーク ライブラリを作成していますQUdpSocket

  1. 新しい を作成しますQUdpSocket
  2. readyReadその信号に接続します。
  3. readDatagramが発生したときに呼び出しますreadyRead

Qt GUI アプリケーションからライブラリを使用すると、すべて正常に動作します。

別のユーザーが Qt GUI アプリケーションの外部で使用されるライブラリをインクルードすると、問題が発生します。

彼は を呼び出しますaddConnection (ソケットを作成し、 で connect を呼び出しますreadyRead) 。

が呼び出されるスレッドaddConnectionは非 Qt です。

addConnection正常に終了したように見えますが、readyReadは決して出力されません。

read を呼び出すと (noreadyReadが発行された場合でも)、データグラムの読み取りが成功します。

機能しなかった修正:

  1. UDP ソケット スレッドを this->thread に移動する

    /li>
  2. void を呼び出して問題をシミュレートしようとしました

    これにより、ユーザーが私のライブラリで経験したのと同じ症状が発生しました。つまり、readyReadが出力されませんでした。

  3. QSignalSpy- 信号でスパイを起動しましたreadyRead; ソケットから直接データを読み取ることはできましたが、カウンターはゼロのままでした。メイン スレッドでソケットが初期化されている場合、スパイは有効な結果 (進行) を返しました。

私の質問:

  1. 私は何が欠けていて、間違っていますか?
  2. メインの GUI スレッドで作成されていない場合でも、発行する最も簡単な方法は何ですか? readyReadGUI なしまたは Qt スレッドの外部で動作するサンプルは見つかりませんでした。