問題タブ [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.
c# - QByteArray から構造体を取得する方法
私はLinux上のC ++ QtプログラムでC#とその他のTCP通信アプリケーションを持っています
しかし、通信後、C++ QByteArray で C# アプリケーションからデータを取得します。QByteArray を構造体に戻す必要があります
QT の my_struct でデータを取得するにはどうすればよいですか。利用した
また
c++ - UDP パケットに応答する
次のコードを使用する UDP サーバーがあります。
残念ながら、UDP パケットを受信すると、ログに次のエラーが記録されます。
UDP ソケットを書き込み可能にするにはどうすればよいですか? 送信者のアドレスとポートに接続する回答用の別のソケットを作成しようとしましたが、送信では28283ポートが使用されなくなりました...
何か案が?
情報: MacOS 10.9 で Qt 5.2.1 を使用しています
qt - Qt: QTcpSocket のデフォルトの接続タイムアウト
ブロックする waitForConnected() メソッドを使用せずにデフォルトの接続タイムアウトを設定する方法を教えてください。タイムアウトとして処理できる約 60 秒後にソケットがエラー信号 (QAbstractSocket::SocketTimeoutError) を送信することに気付きましたが、このタイムアウトは調整できますか?
qt - 単純な URL を取得するときの QNetworkReply エラー「接続が閉じられました」
シンプルなファイルダウンローダーを作ろうとしています。URL をダウンロードするためのコード セグメントは次のとおりです。「 http://stackoverflow.com 」のような単純な URL を取得しようとすると、このコードは正常に機能します。しかし、リダイレクト
する URL を指定すると、 「接続が閉じられました」というエラーがスローされます。
さらに、ネットワーク エラーを認識するために、次の信号スロットを接続しました。
以下は、networkReply のエラー シグナルが発せられた場合にエラーを出力するスロットです。
このエラーのため、networkReplyオブジェクトはヘッダーをまったく受け取りません。
私の必要性は、このメソッドで HTTP ステータス コードを読み取ることです。QNetworkReply::attribute(QNetworkRequest::HttpStatusCodeAttribute)
ヘッダーが取得できないため、HTTP ステータス コードを読み取ることができません。
誰が何が起こっていると言うことができますか?
前もって感謝します!:)
c++ - UDP プロトコルでパケットを送信する
Qt を使用してネットワーク プロジェクトを構築しています。私のプロジェクトはファイルをパケットとして送信します。すべてのパケットは 1K サイズで、UDP
プロトコルを使用しています。
問題は、メガバイト単位の大きなサイズのファイルを送信しようとすると、関数writeDatagram()
がハングしてfor loop
停止することです (私が感じるように)。
どうすれば解決できますか?パケットの送信に使用するコードを次に示します。ベクトルに格納されたパケット。
c++ - Qtを使用してホスト名を取得するには?
デスクトップ PC のホスト名を取得するにはどうすればよいですか?
このように、Symbian OS のシステム情報を取得するには:
http://developer.nokia.com/community/wiki/Get_device_information_using_Qt
c++ - QNetworkAccessManager 派生クラスを持つコンストラクターでの未定義の参照
Qtライブラリを使用する次のコードを使用してhtmlページを読み込もうとしています
コンパイル時に次のエラーが発生します。私が正しい方法で何をしていないのかわかりません。
「replyFinished」スロットを実装するために、QNetworkAccessManager から継承しました。シグナル「終了」は、すでに「QNetworkAccessManager」の一部です。
qt - QtConcurrent::run はメインスレッドでどのように巻き上げられますか?
アプリケーションに QFuture ベースの非同期ネットワーク ファサードを構築しました。大まかに次のように動作します。
次のことをQTimer
行うメインスレッドで呼び出しをトリガーする があります (明らかに単純化されています)。
私の仮定は、waitForFinished()
バックグラウンド スレッドがネットワーク リクエストを実行している間、メイン スレッドをブロックすることでした。代わりに、qFatal
エラーが発生します。
スタック トレースではwaitForFinished()
、メイン スレッドに表示されますが、ブロックされる代わりに次のように表示されます (下から上に読む)。
したがって、 が値を取得するのを待つのではなくQFuture
、メイン スレッドで並行タスクと思われるタスクが発行されます。これにより、get()
上で概説した関数が呼び出され、QEventLoop
. その間、QTimer
再び火災が発生し、私は上から主張を受け取ります。
私は何か間違ったことをしていますか、それともQtConcurrent::run
制御がメインスレッドに戻る可能性があるのは完全に有効ですか?
=== 更新 1
@peppe: 実行されるラムダは、単純に HTTP GET を実行し、JSON 応答を解析してSomeType
オブジェクトに生成します。経由でアクセスされる結果QFuture
。
=== アップデート 2
どうやらこれは設計によるものです。qfutureinterface.cpp
Qt 5.4.0 行 293-295 から:
qt - Qt QTcpSocket readAll関数がソケットからデータ全体を読み取らない
超シンプルなコードを手に入れました。
そして出力として私は得た:
利用可能 - 4677 既読 - 681
利用可能 - 8760 読まれた - 114
利用可能 - 10899 既読 - 59
qt - QEventLoopの正しい使い方
をどのように使用すればよいか疑問がありますQEventLoop
。2 つのコードがあり、どちらも機能します (Web リソースをダウンロードします)。
最初の1つ:
二つ目:
私が知りたいのは、どれを使うべきかということです。つまり、シグナルが発せられた後、イベントループは2番目のループで終了しますか? それとも、最初のように電話する必要がありquit()
ますか? どこかで 2 番目の解決策を見つけましたが、適切ではないように思われたので、最初のコードに変更しました。