問題タブ [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 に答える
376 参照

root - qudpsocket マルチキャスト ルート権限

QUdpSocket を使用して単純な udp マルチキャスト サーバーを作成しましたが、root 権限でアプリを実行した場合にのみ writedatagram 関数が機能します。これは正常ですか?痛いです。さらに、iperf (たとえば) は root 権限がなくても機能するようです。私は何を間違っていますか?

プラットフォームは Ubuntu 12.04 です 3.2.0-56-generic x86_64 私のコードはとてもシンプルです...

このコードは、root 権限について言及していない QT 独自のサンプル コードに基づいています。

IP アドレスを非ブロードキャスト/マルチキャスト アドレス (例: 192.168.1.18) に変更するだけであれば、root 権限は必要ありません。

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

c++ - C++/Qt での UDP サーバーとクライアントのチャット

Qtを使ってチャットプログラムを書こうとしています。半分は完成していますが、いくつか問題があります。

まず、lineedit で書いたメッセージをクライアントに送信しようとすると、エラーが発生します。ですQStringが、writeDatagramのみが を送信しQByteArrayます。QStringに変換する方法はいくつかありますがQByteArray、より良い解決策を探しています。を使用する必要があると思いますconnectToHost()read()write()機能しません。

2 つ目の主な問題は、メッセージを継続的に送受信できないことです。明らかに、これはまだ発生していませんが、Qt コンソールでテストしたところ、そこでも機能しなかったため、何か問題があることはわかっています。

私は GUI とソケット プログラミングに慣れていないので、このトピックを投稿する前にたくさん検索しました。

更新: 最初の問題は解決しましたが、チャット アプリケーションのように動作するどころか、UDP パケットが送受信されなくなりました。

更新: 何が問題なのかがわかり、解決しました。コードには 2 つのQUdpSocketオブジェクトが必要でした。コードも更新しました。これで完全に機能します。他の意見があれば、ぜひ聞いてみたいと思います。

サーバ:

クライアント:

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

c++ - Qt QUdpSocket: readyRead() シグナルと対応するスロットが想定どおりに機能しない

私の短いQUdpSocket例が機能しない理由を見つけるのに問題があります。ポート 2007 で 192.168.2.66 にある組み込みデバイスの読み取りと書き込みに UDP ソケットを 1 つだけ使用する予定です。デバイスは常にポート 2007 で送信者に応答します。UDP ターミナル ソフトウェアでデバイスをテストしたところ、前述のとおりに動作しました。そこで、デバイスの管理に必要な機能を組み込む単純なクラスを設計しました。

問題は Open メソッドにあると思います。

connect() に Qt 5 構文を使用しました。m_strHost値は「192.168.2.66」で、m_wPort2007 です。

私の Write メソッドは非常に単純です ( #if 0 内の部分は、ソケットがデータを受信したかどうかを確認するために追加されました)

そして、これは私のテスト receive() メソッドです...シグナルスロットが機能するかどうかを確認するためだけに書きました:

何が悪いのかわかりません.. QtでUDPソケットを1つだけ使用して読み書きできないという投稿をいくつか見つけました(QtはBSDソケットを使用するため、可能であるはずです)が、私の例は提案された解決策のように見えるので、何が機能していないのか本当にわかりません。

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

c++ - QUdpSocket、192.168.1.x を使用しているときに 192.168.0.x からのブロードキャスト メッセージを読み取るにはどうすればよいですか

192.168.1.xxx にいるときに、192.168.0.xxx からいくつかのテスト ブロードキャスト メッセージをキャプチャしようとしています
。192.168.0.1 から 192.168.0.255 にブロードキャスト テスト パケットを送信するデバイスがあります。
私のアプリケーションは 192.168.1.70 上にあり、両方に同じポート番号を使用してブロードキャスト UDP を受信しようとしています。

私は WireShark を実行しており、デバイスからの正しいパケットが ...0.1 から ...0.255 に移動していることを確認できます。ただし、... 1.70 からのコードでは取得できません。

これは、... 1.70 で使用している受信サンプル テスト コード ビットです。

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

c++ - QUdpSocket が readyRead() シグナルを発行しない

で問題に直面しましたQUdpSocket。信号readyRead()は決して放出されないようです。そこで、QTimerソケット読み込みキューを作成して状態を確認することにしました。そうすれば、ソケットが適切に機能していること(bytesAvailable()バイト数が表示される)と、シグナル/スロットメカニズムも機能していること(タイムアウト()シグナルが発生したこと)を確認できました。しかし、なぜreadyRead()放出しないのですか?ありがとう。

Qt 5.1

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

qt - QUdpSocket setSockOpt

ソケットでこのフラグを使用する古いコードがいくつかあります。

この場所を QUdpSocket を使用するように変更するにはどうすればよいですか? QUdpClass にアナログの setsockopt が見つかりません。QAbstractSocket は、4 つのバリアント フラグ (列挙型) のみを許可する setSocketOption を提供します。Linux版でのみ必要なので、ネイティブ関数があればOKです。

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

python - Qt Linux マシン上の UDP ソケットへの書き込みと Windows Python を使用したソケットからの読み取り

=========== 更新: ===========

現在、ブロードキャスト IP 10.6.0.3 とそれ以上のポート 57890 を使用しています。Windows ネットワーク モニターでトラフィックを確認できますが、Python でそれを読み取ることができません。

==============================

Qt と QUDPSocket を使用して、IP アドレス 10.6.0.2 の UDP ソケットに「hello」メッセージを書き込む Linux マシンがあります。Python を使用して「こんにちは」メッセージを読みたい Windows マシンもあります。私の Qt コードから、データが書き込まれていることがわかりますが、Windows 上の Python プログラムは「データを待機中」のままです。Windows マシンは実際に 10.6.0.2 に ping を実行できます。私は何を間違っていますか?

テスト シーケンス:

Qt 出力:

Qt コード:

Python プログラム:

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

qt - ActiveX (ActiveQt) コントロールでシグナルを使用する方法

Qt の activeQt/wrapper サンプル コードを変更して、Udp パケットを受信できるようにしようとしています。ActiveX コントロールをビルドして C# frameWindowApplication に配置したい

Q_OBJECT マクロが不足しているため、接続/信号が機能していないと思いますが、Q_OBJECT マクロのコメントを外すと、エラーコードが表示されます。

このパケットを適切に受信する方法を誰か助けてもらえますか?