問題タブ [qtcpsocket]
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.
c++ - Windows XP で QTcpSocket::connectToHost() がクラッシュする
QTcpSocket を QTcpServer に接続するプログラムを作成しましたが、Windows 7 では問題なく動作しますが、Windows XP では接続せず、プログラムが終了するだけです。
Windows XP では、最初の行を超えることはありません。ソケットの状態が 0 から 1、2 に変化し (ソケットが接続の確立を開始)、閉じます。ファイアウォールを通過するポート 1234 を許可するか、ファイアウォールを完全に無効にしようとしましたが、それでもクラッシュします。
誰でもこれを修正する方法を知っていますか?
c++ - QDataStream を使用して QTcpSocket から読み取る
を介してバイナリデータを送信する必要がありますQTcpSocket
。を使用することを考えてQDataStream
いましたが、問題が発生しました。読み取ろうとしたときにデータが到着しないと、黙って失敗します。
たとえば、次のコードがある場合:
ソケットに現在データが存在しない場合は、黙って失敗します。代わりにブロックするように指示する方法はありますか?
qt - QObject::QRunnable で接続 - コンソール
シンプルなマルチスレッド サーバーを作成します。
- サーバーの作成
- 新しい接続が新しい QThreadpool を作成する場合 - QRunnable
- 実行可能な状態でクライアントにメッセージを送信し、リクエストを待ちます
- クライアントが切断された場合は、runnable に qDebug を書き込み、runnable を終了します。
server.h
サーバー.cpp:
runnable.h
runnable.cpp
!!! 作り方???!!!! QObgect::connect(newSocketCon, SIGNAL(disconnected()), this, SLOTS(disconnectCln()));
qt - QSocketNotifier 警告 -- スレッド内でソケットを使用しています
この警告を削除することができます。以下の点について提案してください。
新しいリクエストが QTcpServer に来るたびに、新しいオブジェクトを作成します -- xxx
。次に、このオブジェクトは、このソケットのスレッドを作成し、yyy オブジェクトの dowork_socket() 関数で受信データを送信します。dowork_socket() 関数内で、シグナル signalTcpSocketWriteData() を発行して、ソケットからデータを送信します。
新しいソケットのスレッドを作成するオブジェクト - xxx
(完全なコードは貼り付けていません):----
スレッドが移動するオブジェクト -- yyy
(完全なコードは貼り付けていません) :----
上記のオブジェクト yyy コンストラクター内で、シグナル signalTcpSocketWriteData をスロット writeDataSlot に接続しています:---
オブジェクト yyy の dowork 関数 :--
上記の方法でデータを正常に送信でき、上記の警告が削除されました。
1>
ここで私の質問は、2 つのスレッドが作成され、両方のスレッドが同時にシグナルを発すると仮定すると、スロットの実行中に競合が発生しますか?
2>
クリティカル セクションの問題が発生したり、イベントがキューに入れられて同時に実行されなかったりしますか?
この2点について提案してください。
qt - QTcpSocket パケットロスの測定方法
QTcpSocket で発生したパケット損失またはこの場合の再送信を取得する方法はありますか? 方法がある場合、送信されたパケットと再送信の合計量を確認する方法もありますか?