問題タブ [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.

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

sockets - QLocalSocket をクリアするにはどうすればよいですか?

QLocalSocketのクリアに問題があります。

現在、 QLocalServer/QLocalSocketを介して画像データを送受信しています。

しかし、プログラムを受信すると、メモリに画像データが積み重なるため、メモリが大幅に増加します。

そのため、データが読み取られたときにソケットをクリーンアップしたいと考えています。

しかし、 QLocalSocketリファレンスには機能がないようです。

ソケットをクリアするにはどうすればよいですか?

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

memory - QLocalServer/QLocalSocket でのメモリリーク

QLocalServer/QLocalSocket の使用に問題があります。

サーバーからクライアントに生のピクセル データを送信していますが、処理中に大量のメモリ リークが発生します。でも何が原因か分からなかった…

メモリが約20MB/1秒増えます(システム管理者に目で確認したところ)。

以下は私のコードです。

サーバ

クライアント

これらの 2 つのコードはうまく通信できますが、記憶は非常に急激に増加し、一定のレベルを超えると終了します。

connection->reset() または QByteArray::clear()..etcを試しましたが、うまくいきません。

私の問題に何か考えはありますか??

QTcpServer/QTcpSocketを使用してみませんか?? これは私の問題を解決できますか??

あなたのアイデアを共有してください。ありがとう!!

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

c++ - デッドロックを回避するために QLocalSocket/QDataStream をどのように読み取る必要がありますか?

QLocalSocket/QDataStream はどのように読み取ればよいですか?

と を使用して名前付きパイプを介して別のプログラムと通信するプログラムがQLocalSocketありQDataStreamます。下のrecieveMessage()スロットはQLocalSocketreadyRead()信号に接続されています。

アプリケーションがハングアップすることreadRawData()があります。つまり、4 バイトのヘッダーを正常に読み取りますが、readRawData().

付け加えると…

...この関数の開始まで、アプリケーションは正常に動作します (短いテスト メッセージで)。

そのとき、(ドキュメントは非常にまばらです) ある種のデッドロックが発生しており、bytesAvailable()信号を使用して、ブロックするのではなくバッファを徐々に構築する必要があると推測しています。

どうしてこれなの?また、QLocalSocket から読み取る正しい方法は何ですか?

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

qt - QLocalSocket - QTimer とラムダ

Qt 5.7.1 で Lambda とタイマーの動作がおかしくなりました。おそらく私の間違いです。

ソケットとの接続を開始し、タイマーを設定して、一定時間後に接続されたかどうかを確認します。

ソケットに接続された信号は時間を停止します。

ただし、以下の実装では、接続されたシグナルが呼び出されてもタイマーは停止しません。

これは、Qt5.7.1 および Windows 10 で再現可能な問題の最小限の例です。

プログラムの出力:

また、常に再現できるとは限らず、ランダムに見えることにも気付きました。

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

c++ - QLocalSocket が "Windows" のローカル パイプにのみ接続されるように設計されているのはなぜですか?

したがって、QT5.7.0 ソースqlocalsocket_win.cppには次の行があります。

そのため、別の PC のパイプに接続する機会はありません。数行を変更し、Qt5Network.dll を再コンパイルすると、すべて正常に動作しました。QLocalSocket をローカル パイプのみにバインドする理由はありますか?

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

c++ - QLocalSocket::QLocalSocket(QObject*) への未定義の参照

QT で QLocalSocket を使用しようとしていますが、エラーが発生しますUndefined Reference to QLocalSocket::QLocalSocket(QObject*)

.cpp の冒頭は次のとおりです。

そして.hの始まり

LinuxでQT 5.8を使用しています。