問題タブ [qlocalsocket]
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++ - QLocalSocket は何も送信しません
まあ、私はまだ QLocalSocket を介して実行されている IPC を取得しようとしています。明らかにソケットが接続され、接続が受け入れられますが、何かを送信しようとすると
応答がありません...サーバーのソケットは何もしません。
サーバーの読み取り実装:
出力:
クライアント:
サーバ:
ソケットの readReady() シグナルは発行されないので、使用することにしました
...しかし、明らかにそれも機能しません。クライアントの関数のwaitForReadyRead
直後に起動されます。これは、読み取る準備ができていることを意味すると思います...write
[編集] はauto conn = connection(...)
デバッグ用で、正しく接続されているかどうかを確認するためのものでした....そうです
c++ - 名前付きパイプにQLocalSocketが本当に使用されていますか
Windows で名前付きパイプを使用する場合、Qt のドキュメントによると、QLocalSocket を使用できます。Qtでサーバーとクライアントのプログラムを書いています。WIN32 API を使用してパイプラインにメッセージを書き込もうとすると、Qt クライアントはそれを表示しません。また、クライアントが再度 WIN32 API を使用して書き込む場合、Qt サーバーは送信されたメッセージをエコーしません。QLocalSocket は名前付きパイプに本当に推奨されますか?
これは Win32 サーバー コードです。
これは Win32 クライアント側です。
これはQtサーバー側です
これは Qt クライアント側です
c++ - QLocalSocket::disconnectFromServer() は、イベント ループが Windows の Qt5 で再入力されるまでソケットを切断しません。
Qt5 用のプログラムをコンパイルしましたが、実行時の動作が異なります。
Qt5 では、イベントループが再入力されるまでソケットは切断されませんwaitForDisconnected()
。
たとえば、このコード:
次の出力が得られます。
Started QEventLoop...
しかし、メッセージを受け取るまでソケット自体は削除されません。ソケットが反対側から切断されるのを待つ別のアプリケーションからこれを監視しているためです。
Qt4 でコンパイルすると、同じコードが正常に動作waitForDisconnected()
し、ソケットが戻る前に切断されます。Qt5waitForDisconnected()
では、実際には切断されていないのに、ソケットが切断されたと主張して返されます。
Qt の私のバージョンは 5.1.1 です。
c++ - Qt 5.2: QLocalServer が重複した readyRead シグナルを受信する
単純な QLocalServer-QLocalSocket IPC システムを設計する際の問題に困惑しています。
QLocalServer は新しい接続を待ち、信号を適切なスロットに接続します。
この readAll は、2 つの readyRead シグナルを順番に取得する方法を確認するために意図的に行われます (同じスロット ポインターから確認しました)。
クライアントの操作は非常に簡単です。
_socket->write(data)呼び出しは、サーバーで重複した readyRead をトリガーします(サーバー側が ReadAll 呼び出しですべてのデータを読み取った場合でも)。
私がどこを見なければならないかの兆候はありますか?
c++ - QLocalServer は、バイトが使用できない場合に readyRead を発行します
ローカル OSX 10.11 で QLocalServer を起動しようとしています。
サーバーへの接続をループで試行するクライアントがあります。
このコードの実行中に、別のアプリケーションで QLocalServer を起動しようとします。
readyRead が呼び出されたときに、バイトが利用できないのはなぜですか?
linux - QLocalSocket 接続から PID を取得することは可能ですか?
クライアント プロセスがローカル Unix ドメイン ソケットを使用してサーバーに接続できるクライアント/サーバー アーキテクチャを構築しています。
サーバー プロセスは Qt で実装され、QLocalServer と QLocalSocket を使用してサーバー側で接続を維持します。
接続情報から直接、接続しているクライアント プロセスの PID を取得する方法はありますか? クライアントが別のプロセスの PID を偽装しようとするリスクがあるため、クライアントがソケット接続を介して PID を教えてくれることを信頼したくありません。