問題タブ [qtcpserver]
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 - TCP ネットワーク通信のセキュリティ リスク
QTcp* を使用してサーバー/クライアント接続を確立できるアプリケーションを開発しています
クライアントはサーバーに番号を送信します。
受信した文字列は、その長さと品質がチェックされます (それは本当に数字ですか?)
すべてが OK の場合、サーバーはファイル パス (送信された番号によって異なります) を返します。
クライアントは、ファイルが存在するかどうか、および有効なイメージであるかどうかを確認します。ファイルがルールに準拠している場合、ファイルに対してコマンドを実行します。
このタイプの接続には、どのようなセキュリティ上の懸念がありますか?
このプログラムは Linux システム用に設計されており、イメージ ファイルに対する外部コマンドは QProcess を使用して実行されます。送信された文字列に次のようなものが含まれている場合 (次のコマンドを実行しないでください):
次に、ファイルが見つからないセキュリティ チェックでブロックされます (ファイル パスではないため)。送信された文字列の有効性についてチェックが行われなかった場合、次のコマンドが実行されます。
それはパニックを引き起こすでしょう!しかし、これは起こり得ません。
それで、私が考慮すべきことはありますか?
c++ - 別のスレッドでの接続に参加している QTcpServer でのメモリ リーク
Windows 7 の Qt 4.7 で RPC サーバーを開発しています。同時に複数の実行に参加するために、すべての要求が個別のスレッドで実行されます (関数がブロックされている可能性があるため)。QTcpServer から継承し、incomingConnection 関数を再実装しました。次のようになります。
RpcServerConnection によって管理されるデータ交換。初期化メソッドは次のようになります。
すべてのデータが受信され、応答が送信されると、finish シグナルが発行されます。デバッグ すべてのスレッドとソケットが削除されていることがわかります。ただし、プロセスメモリは新しい接続ごとに増加し、終了しても解放されません...
QTcpServer から継承する場合、何か他のものを解放する必要がありますか?
sockets - 大きなファイルへの QDataStream の書き込み
ファイル転送アプリケーションがあり、QDataStream を使用して、QTCPSocket から読み取ったデータをファイルに書き込みます。これを書いたとき、QDataStream は固定サイズのままだと思っていましたが、ソケットから読み取ってファイルにデータをストリーミングすると、アプリケーションのメモリが着実に増加するようです。各チャンクを含むファイルであるため、すべてをRAMに保持する必要はありません。
メモリが着実に増加しないように、ファイルに書き込む方法を知っている人はいますか?
c++ - イベントループがあるスレッドとないスレッドの違い
イベントループのあるスレッド
別のスレッドで QTcpServer オブジェクトを作成し、着信接続をリッスンして発生時に処理します。ある時点で が削除され、スレッドでイベントを生成するものは何もありません。
手動で削除しないと、スレッドは無限ブロック (メモリを使用するが CPU を使用しない) に入りますか?
イベントループのないスレッド
QTcpServer オブジェクトが作成され、リッスンしています。
QTcpServer.listen ()は、スレッドがすべてのコードを実行して自然に終了するのを妨げていますか?
着信接続はどうですか?手動でポーリングする必要がありますか?
c++ - QTcpServer は localhost からのみアクセスできます
ローカル ネットワーク上の私のコンピューターの IP は です192.168.0.100
。QTcpServer を次のように起動します
で接続しようとするとnetcat 192.168.0.100 1234
、接続が拒否されますが、netcat localhost 1234
成功します。
同時に、 で聞くとnetcat -l -p 1234
、 と の両方192.168.0.100
でlocalhost
問題なく接続できます。
頭を悩ませているのですが、なぜそうなっているのでしょうか?
qt - telnet クライアントが接続していません -- QTCPserver に
telnet クライアントを使用してローカルホストで実行されているサーバーに接続できないのはなぜですか?
Windows-7 を使用しており、コントロール パネルで telnet クライアントがオンになっています。
それを機能させる方法を提案してください。
Tcp サーバーは tcpserver オブジェクトで作成されます:---
// tcpserver の共通スロット - スレッド
サーバーの新しい接続コード:---
今、私はtelnetでコマンドを入力します:----
次のステートメントが出力されるので、サーバーをリッスン モードにすることができます:--
しかし、telnet クライアントが localhost & PORT = 5000 で実行されているサーバーに接続できない理由?
ssl-certificate - QSslSocket 関数にアクセスしようとするとサーバーがクラッシュする
だから私は QTCreator で非常に基本的なサーバー/クライアントに取り組んでいます。クライアントが接続しようとしたときに、サーバーがクライアントに証明書を送信することになっています。サーバーに次のコードがあります。
tcpSocket->setPrivateKey(ssl_Key); クラッシュを引き起こします。tcpSocket->setPrivateKey(キー); クラッシュは発生しませんが、それは正しくないと思います.... tcpSocket->setLocalCertificate(); と同じ扱いです。
何か案は??ところで、この場所 tcpSocket->flush() もクラッシュします...ありがとうございます