問題タブ [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 投票する
2 に答える
2749 参照

qt - 使用する QUdpSocket のネットワーク インターフェイスを指定する方法は?

QUdpSocketブロードキャスト パケットの送信に使用するアプリケーションがあります。パケットを送信するマシンには、複数のネットワーク インターフェイスがあります。

QUdpSocket残念ながら、適切なネットワーク インターフェイスを使用する方法がわかりませんでした。パケットの送信に使用するインターフェイスを正確に指定できるオプションはありますか?

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

c++ - QUdpSocketを使用して、ルーターの背後にあるサーバーとクライアントを接続するにはどうすればよいですか?

サーバーがインターネットに直接接続されており、クライアントがルーターに接続されているとします。クライアントはサーバーのIPアドレスとポートを知っているため、サーバーにメッセージを送信できます。しかし、サーバーはどのようにしてクライアントにメッセージを送り返しますか?クライアントの外部IPアドレスとポートを取得できますが、そのポートにメッセージを送信する必要がありますか?クライアントはどのようにメッセージをリッスンしますか、どのポートをリッスンする必要がありますか?ポートフォワーディングがないと仮定します。

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

c++ - QUdpSocket で送信ポート番号を知るにはどうすればよいですか?

UDP ソケットがメッセージの送信に使用したポート番号を取得する方法はありますか?

私がやりたいことは、udp データグラムを誰かに送信し、その送信ポートをリッスンすることです。

たとえば、次のコードでは:

送信ポートが何であれ、ソケット s を自動的にバインドしますか?

もしそうなら、その送信ポートをリッスンできますか?

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

qt - QUdpSocketHeartBeatの動作

QtアプリケーションのステータスをUpdソケットを介して毎秒送信する必要があります。どうすればこれを達成できますか?QThread ::sleepを使用してQThreadeをサブクラス化する必要がありますか、それとも最適なアプローチがありますか?ありがとう

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

android - サービス ブロック アプリケーションの実行

こんにちは、サービスに問題があります。UDPServer を実装し、受信したパケットのメイン アクティビティにログインするアプリケーションを作成しています。アクティビティが閉じられてもサービスが開始されるようにしたいので、サービスを使用する必要があると思います。本当ですか?音楽プレーヤー サービスを問題なく実装するアプリを既に認識していますが、UDP サーバーのコードをサービスの onStart 関数に挿入すると、アプリケーションがクラッシュします。これは、udp サーバーに関するコードです。

問題はコマンドにあると思います:

実行をブロックし、何かが読み取られるのを待っています。メインプログラムがサービスの待機をブロックしないようにしたい.

サービスにタイムアウトとスリープコマンドを挿入しようとしましたが、結果はありません:

ありがとう!

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

qt5 - QT 5.0 Qudpsocket が waitforbyteswritten をトリガーしない

私はUDPソケットをバインドし、特定のアドレスのUDPデータグラムを書き込もうとしているので、ここに私のコードがあります:

変数 dest は QString ですが、socket->writeDatagram を呼び出した後、失敗したかのように下の if に入りますが、実際にはバイトが書き込まれ (その後受信)、byteswritten 信号が送信されます。では、なぜ if 句に入るのでしょうか。

ps (ip dest を 127.0.0.1 としてテストしました)、socket->errorString() は「不明なエラー」を出力します

0 投票する
0 に答える
591 参照

qt - 単一のemitステートメントから複数回呼び出されるQt5スロット

私はQtに比較的慣れていませんが、少し調べてみました。UDPブロードキャストを処理する基本クラスがあり、クラスのコンストラクターで次のように接続ステートメントを実行します。

ブロードキャスト用のシグナル/スロット インターフェイスをセットアップしました。

broadcast_messageのようになります。

私のタイマーはうまく機能します。コードは次のとおりです。

「サーバーにパイントを送信しています」というテキストは1回しか表示されませんが、broadcast_messageはqDebug()複数回出力します。

私は明示的に複数のスレッドを使用していません。ご覧のとおり、Qt::UniqueConnection を使用していますが、明らかに影響はありませんか?

では、なぜスロットが複数回呼び出されるのでしょうか? 私はそれを少しデバッグして、emit を使用せずに this->broadcast( ... ) を呼び出してみましたが、それでも複数回呼び出されます。

編集:スロットにカウンターを追加したところ、broadcast_message340回呼び出されました。それに何か意味はありますか?

0 投票する
0 に答える
509 参照

qt - 不正なパケットを送信する QUdpSocket

QUdpSocket ブロードキャスターをセットアップしています。Wireshark で出力を表示すると、パケットの形式が正しくないと表示されます。パケットを調べると、イーサネット トレーラーで送信されていないようです。これを自分で発行する必要がありますか、それとも別の問題がありますか? 以下の私のコードは少し凝縮されています。クロスオーバー ケーブルを介して接続されている場合、受信デバイス (マイクロコントローラー) はパケットを認識して応答することに注意してください (wireshark で見られるように)。UDP トラフィックを許可するスイッチド ネットワークでこれを使用できるように、不正なフレームがないことを確認したいと考えています。

ありがとう

およびwiresharkからの出力

最後の 4 バイトは、送信したデータ 5A 5A 02 03 に対応していることに注意してください。

Google 画像検索によると、パケットにはトレーラー ビットがありません... 私はネットワークの専門家ではありませんが、完全に推測です。

Windows 7 x64、VS2010、QT 4.8-最新 x64

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

qt - QUdpSocket クライアントから読み取れません

システムにコマンドを送信し、システムからの応答を読み取ります。私のマシンはクライアントです。パケットをサーバーに正常に書き込みましたが、サーバーからの応答を受信できません。なぜこれが起こるのか疑問に思っています。私のコードを見てください: (サーバーアドレスは 192.168.100.143 で、ポートは 11000 です)