問題タブ [qtnetwork]

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 に答える
808 参照

c# - QByteArray から構造体を取得する方法

私はLinux上のC ++ QtプログラムでC#とその他のTCP通信アプリケーションを持っています

しかし、通信後、C++ QByteArray で C# アプリケーションからデータを取得します。QByteArray を構造体に戻す必要があります

QT の my_struct でデータを取得するにはどうすればよいですか。利用した

また

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

c++ - UDP パケットに応答する

次のコードを使用する UDP サーバーがあります。

残念ながら、UDP パケットを受信すると、ログに次のエラーが記録されます。

UDP ソケットを書き込み可能にするにはどうすればよいですか? 送信者のアドレスとポートに接続する回答用の別のソケットを作成しようとしましたが、送信では28283ポートが使用されなくなりました...

何か案が?

情報: MacOS 10.9 で Qt 5.2.1 を使用しています

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

qt - Qt: QTcpSocket のデフォルトの接続タイムアウト

ブロックする waitForConnected() メソッドを使用せずにデフォルトの接続タイムアウトを設定する方法を教えてください。タイムアウトとして処理できる約 60 秒後にソケットがエラー信号 (QAbstractSocket::SocketTimeoutError) を送信することに気付きましたが、このタイムアウトは調整できますか?

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

qt - 単純な URL を取得するときの QNetworkReply エラー「接続が閉じられました」

シンプルなファイルダウンローダーを作ろうとしています。URL をダウンロードするためのコード セグメントは次のとおりです。「 http://stackoverflow.com 」のような単純な URL を取得しようとすると、このコードは正常に機能します。しかし、リダイレクト
する URL を指定すると、 「接続が閉じられました」というエラーがスローされます。

さらに、ネットワーク エラーを認識するために、次の信号スロットを接続しました。

以下は、networkReply のエラー シグナルが発せられた場合にエラーを出力するスロットです。


このエラーのため、networkReplyオブジェクトはヘッダーをまったく受け取りません。

私の必要性は、このメソッドで HTTP ステータス コードを読み取ることです。QNetworkReply::attribute(QNetworkRequest::HttpStatusCodeAttribute)

ヘッダーが取得できないため、HTTP ステータス コードを読み取ることができません。

誰が何が起こっていると言うことができますか?
前もって感謝します!:)

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

c++ - UDP プロトコルでパケットを送信する

Qt を使用してネットワーク プロジェクトを構築しています。私のプロジェクトはファイルをパケットとして送信します。すべてのパケットは 1K サイズで、UDPプロトコルを使用しています。

問題は、メガバイト単位の大きなサイズのファイルを送信しようとすると、関数writeDatagram()がハングしてfor loop停止することです (私が感じるように)。

どうすれば解決できますか?パケットの送信に使用するコードを次に示します。ベクトルに格納されたパケット。

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

c++ - Qtを使用してホスト名を取得するには?

デスクトップ PC のホスト名を取得するにはどうすればよいですか?

このように、Symbian OS のシステム情報を取得するには:

http://developer.nokia.com/community/wiki/Get_device_information_using_Qt

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

c++ - QNetworkAccessManager 派生クラスを持つコンストラクターでの未定義の参照

Qtライブラリを使用する次のコードを使用してhtmlページを読み込もうとしています

コンパイル時に次のエラーが発生します。私が正しい方法で何をしていないのかわかりません。

「replyFinished」スロットを実装するために、QNetworkAccessManager から継承しました。シグナル「終了」は、すでに「QNetworkAccessManager」の一部です。

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

qt - QtConcurrent::run はメインスレッドでどのように巻き上げられますか?

アプリケーションに QFuture ベースの非同期ネットワーク ファサードを構築しました。大まかに次のように動作します。

次のことをQTimer行うメインスレッドで呼び出しをトリガーする があります (明らかに単純化されています)。

私の仮定は、waitForFinished()バックグラウンド スレッドがネットワーク リクエストを実行している間、メイン スレッドをブロックすることでした。代わりに、qFatalエラーが発生します。

スタック トレースではwaitForFinished()、メイン スレッドに表示されますが、ブロックされる代わりに次のように表示されます (下から上に読む)。

したがって、 が値を取得するのを待つのではなくQFuture、メイン スレッドで並行タスクと思われるタスクが発行されます。これにより、get()上で概説した関数が呼び出され、QEventLoop. その間、QTimer再び火災が発生し、私は上から主張を受け取ります。

私は何か間違ったことをしていますか、それともQtConcurrent::run制御がメインスレッドに戻る可能性があるのは完全に有効ですか?

=== 更新 1

@peppe: 実行されるラムダは、単純に HTTP GET を実行し、JSON 応答を解析してSomeTypeオブジェクトに生成します。経由でアクセスされる結果QFuture

=== アップデート 2

どうやらこれは設計によるものです。qfutureinterface.cppQt 5.4.0 行 293-295 から:

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

qt - Qt QTcpSocket readAll関数がソケットからデータ全体を読み取らない

超シンプルなコードを手に入れました。

そして出力として私は得た:

利用可能 - 4677 既読 - 681

利用可能 - 8760 読まれた - 114

利用可能 - 10899 既読 - 59

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

qt - QEventLoopの正しい使い方

をどのように使用すればよいか疑問がありますQEventLoop。2 つのコードがあり、どちらも機能します (Web リソースをダウンロードします)。

最初の1つ:

二つ目:

私が知りたいのは、どれを使うべきかということです。つまり、シグナルが発せられた後、イベントループは2番目のループで終了しますか? それとも、最初のように電話する必要がありquit()ますか? どこかで 2 番目の解決策を見つけましたが、適切ではないように思われたので、最初のコードに変更しました。