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

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

c++ - QTcpSocket が間違ったデータを受け取ったのはなぜですか?

私は単純なネットワークアプリケーションを書いています。クライアントがサーバー メッセージ server に送信し、QTextEdit でそれを印刷して client に応答します。QTcpServer と QTcpSocket を使用しています。私には解決できない問題があります。受信データは quint16 + QTime + QString で、QByteArrey として送信されます。データブロックのサイズを受け取るために quint16 を使用します。そして何らかの理由で、クライアントがサーバーに送信するとき

サーバー取得:

ご覧のとおり、何らかの理由でサーバーが QDataStrem から間違った変数値を取得しており、常に 30073 になっています。理由がわかりません。

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

c++ - C++/Qt - あるスレッドから別のスレッド スロットへのシグナル

で動作するクライアントをセットアップしていますQTcpSocket。サーバーへの接続を設定する部分をスレッドとして実装します。

これは、接続関数 (.hpp) を実装する私のクラスの外観です。

そして、これが私がこのクラス (.cpp) を実装した方法です。

次の方法でスレッドを開始します。

プログラムをテストすると、コネクタが正しく作成されます。彼は関数 transformIP() および connectToServer() を開始します。現在、サーバーを実行していないため、クライアントは接続できません。これにより、connectionFailed() シグナルが発行されます。コネクタ オブジェクトでスレッドを開始するクライアント クラスは、このシグナルを受信し、それに反応する必要があります。

問題は、クライアント クラスがシグナルに反応しないため、シグナルが発信されていないように見えることです。これはクライアントクラスの一部で、信号を特定のスロットに接続します:

誰かがこれを解決する方法を知っていれば、素晴らしいでしょう、ありがとう:)

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

qt - ユーザー名とパスワードを使用した既存のサーバーとの QT 接続

サーバー上で実行されている既存のシミュレーターで構築したシミュレーターを接続するアダプターインターフェイスに取り組んでいます。

私は QAbstractSocket を調べてきましたが、その基本的な考え方を理解しています。

しかし、問題は、アクセスしようとしているサーバーに認証システムがあり、実際にユーザー名とパスワードの資格情報を入力する必要があることです。

クラスリファレンスを調べた限り、解決策はありません。

どのQTクラスを使用すればよいか、またはそれらにアクセスする方法についていくつかのアイデアを教えてください。

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

qt - QTCP ソケットを使用したサーバー応答

コードを既存のサーバーに接続していますが、サーバーからの応答を取得できます。

しかし問題は、応答の内容が大きすぎて単純な方法で処理できないことです。

以下は、データを取得するために使用するコードです。

上記のコードを for ループで単純化することに問題があります。

for ループ内で socket->waitForReadyRead を実装する方法がわかりません。誰でもこれについて私を助けてもらえますか?

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

c++ - waitForReadyRead が空の文字列を返す - なぜブロックしないのですか?

現在、ブロッキング モデルがあり、クライアントがデータを受信するコードは次のとおりです。

現在clntSocket->waitForReadyRead();、ソケットから読み取るデータがある場合にのみブロックを解除する必要があると考えていますが、それ自体でブロックを解除し、 tick_stream が空であると思われます。