問題タブ [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.
qt - 使用する QUdpSocket のネットワーク インターフェイスを指定する方法は?
QUdpSocket
ブロードキャスト パケットの送信に使用するアプリケーションがあります。パケットを送信するマシンには、複数のネットワーク インターフェイスがあります。
QUdpSocket
残念ながら、適切なネットワーク インターフェイスを使用する方法がわかりませんでした。パケットの送信に使用するインターフェイスを正確に指定できるオプションはありますか?
c++ - QUdpSocketを使用して、ルーターの背後にあるサーバーとクライアントを接続するにはどうすればよいですか?
サーバーがインターネットに直接接続されており、クライアントがルーターに接続されているとします。クライアントはサーバーのIPアドレスとポートを知っているため、サーバーにメッセージを送信できます。しかし、サーバーはどのようにしてクライアントにメッセージを送り返しますか?クライアントの外部IPアドレスとポートを取得できますが、そのポートにメッセージを送信する必要がありますか?クライアントはどのようにメッセージをリッスンしますか、どのポートをリッスンする必要がありますか?ポートフォワーディングがないと仮定します。
c++ - QUdpSocket で送信ポート番号を知るにはどうすればよいですか?
UDP ソケットがメッセージの送信に使用したポート番号を取得する方法はありますか?
私がやりたいことは、udp データグラムを誰かに送信し、その送信ポートをリッスンすることです。
たとえば、次のコードでは:
送信ポートが何であれ、ソケット s を自動的にバインドしますか?
もしそうなら、その送信ポートをリッスンできますか?
qt - QUdpSocketHeartBeatの動作
QtアプリケーションのステータスをUpdソケットを介して毎秒送信する必要があります。どうすればこれを達成できますか?QThread ::sleepを使用してQThreadeをサブクラス化する必要がありますか、それとも最適なアプローチがありますか?ありがとう
android - サービス ブロック アプリケーションの実行
こんにちは、サービスに問題があります。UDPServer を実装し、受信したパケットのメイン アクティビティにログインするアプリケーションを作成しています。アクティビティが閉じられてもサービスが開始されるようにしたいので、サービスを使用する必要があると思います。本当ですか?音楽プレーヤー サービスを問題なく実装するアプリを既に認識していますが、UDP サーバーのコードをサービスの onStart 関数に挿入すると、アプリケーションがクラッシュします。これは、udp サーバーに関するコードです。
問題はコマンドにあると思います:
実行をブロックし、何かが読み取られるのを待っています。メインプログラムがサービスの待機をブロックしないようにしたい.
サービスにタイムアウトとスリープコマンドを挿入しようとしましたが、結果はありません:
ありがとう!
qt5 - QT 5.0 Qudpsocket が waitforbyteswritten をトリガーしない
私はUDPソケットをバインドし、特定のアドレスのUDPデータグラムを書き込もうとしているので、ここに私のコードがあります:
変数 dest は QString ですが、socket->writeDatagram を呼び出した後、失敗したかのように下の if に入りますが、実際にはバイトが書き込まれ (その後受信)、byteswritten 信号が送信されます。では、なぜ if 句に入るのでしょうか。
ps (ip dest を 127.0.0.1 としてテストしました)、socket->errorString() は「不明なエラー」を出力します
qt - 単一のemitステートメントから複数回呼び出されるQt5スロット
私はQtに比較的慣れていませんが、少し調べてみました。UDPブロードキャストを処理する基本クラスがあり、クラスのコンストラクターで次のように接続ステートメントを実行します。
ブロードキャスト用のシグナル/スロット インターフェイスをセットアップしました。
次broadcast_message
のようになります。
私のタイマーはうまく機能します。コードは次のとおりです。
「サーバーにパイントを送信しています」というテキストは1回しか表示されませんが、broadcast_messageはqDebug()
複数回出力します。
私は明示的に複数のスレッドを使用していません。ご覧のとおり、Qt::UniqueConnection を使用していますが、明らかに影響はありませんか?
では、なぜスロットが複数回呼び出されるのでしょうか? 私はそれを少しデバッグして、emit を使用せずに this->broadcast( ... ) を呼び出してみましたが、それでも複数回呼び出されます。
編集:スロットにカウンターを追加したところ、broadcast_message
340回呼び出されました。それに何か意味はありますか?
qt - 不正なパケットを送信する QUdpSocket
QUdpSocket ブロードキャスターをセットアップしています。Wireshark で出力を表示すると、パケットの形式が正しくないと表示されます。パケットを調べると、イーサネット トレーラーで送信されていないようです。これを自分で発行する必要がありますか、それとも別の問題がありますか? 以下の私のコードは少し凝縮されています。クロスオーバー ケーブルを介して接続されている場合、受信デバイス (マイクロコントローラー) はパケットを認識して応答することに注意してください (wireshark で見られるように)。UDP トラフィックを許可するスイッチド ネットワークでこれを使用できるように、不正なフレームがないことを確認したいと考えています。
ありがとう
およびwiresharkからの出力
最後の 4 バイトは、送信したデータ 5A 5A 02 03 に対応していることに注意してください。
Google 画像検索によると、パケットにはトレーラー ビットがありません... 私はネットワークの専門家ではありませんが、完全に推測です。
Windows 7 x64、VS2010、QT 4.8-最新 x64
qt - QUdpSocket クライアントから読み取れません
システムにコマンドを送信し、システムからの応答を読み取ります。私のマシンはクライアントです。パケットをサーバーに正常に書き込みましたが、サーバーからの応答を受信できません。なぜこれが起こるのか疑問に思っています。私のコードを見てください: (サーバーアドレスは 192.168.100.143 で、ポートは 11000 です)