問題タブ [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 投票する
1 に答える
1431 参照

qt - smtp send mail with QTcpSocket

I have created a mail service GUI with qt using QsslSocket and i will send mail using gmail account "smtp.gmail.com", 465 and i wanted it to port to QTCPsocket and sent mail with attachment. TCP socket is connecting .. but it is not emitting readyRead() signal.

is the problem with my code or gmail server wont support tcp connect ..? because for QSSLSocket it is working fine for me .

My code

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

c++ - Qt 4.7 - FTP ディレクトリ内のファイルを反復処理する方法

ftp ディレクトリへの定数パスを持つプログラムがあります。そのディレクトリにアクセスし、その中のファイルに対していくつかの操作を行う必要がある関数があります。以前は、このディレクトリにはファイルが 1 つしかなく、常に同じ名前だったので、パスをハードコードしても問題ないと言われました。その形式では、これは機能しました。

void MyClass::FTPReader() { QString filepath = "ftp://user:password@ftp.myftp.com/needed_directory/needed_file.txt"; QNetworkAccessManager *nam = new QNetworkAccessManager(this); QNetworkRequest request(filepath); QNetworkReply *reply = nam->get(request); //Other operations done on data after this... }

ただし、a) このディレクトリには複数のファイルが存在する可能性があり、b) 変数名を持つことができることがわかりました。ディレクトリ内のすべてのファイルが常に必要になることはわかっていますが、番号や名前はわかりません。ftp ディレクトリをループする方法はありますか (この場合needed_directory、ネットワーク要求と応答を使用してファイルを個別に取得しますか?ファイル名のファイル固有の部分を除いて、おそらく上記と同じことを行う必要があると思います。それを使って何かをしますが、それを行う方法がわかりません. ありがとう!

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

c++ - opencvグレースケールとカラー画像をQtのftpサーバーに送信する方法は?

Qt 5.2 の QNetworkAccessManager オブジェクトを使用して、OpenCV シングル チャネル イメージ (CV_8UC1) とマルチチャネル イメージ (CV_8UC3) を ftp サーバーに送信したいと考えています。

次のいずれかの形式でデータを送信する QNetworkAccessManager の put メソッドを試しました。

ハードディスクから読み取ったテキストファイルまたは画像に対しては正常に機能します。しかし、この方法を使用してRAMにあるopencvグレースケールおよびカラー画像を送信する方法がわかりませんか?

形式を Qbytearray に変更してから送信する必要があると思いますが、インターネットを検索しても有用なものは見つかりませんでした。私のアプリケーションには適していないこれを見つけただけで、その画像を生成するのに時間がかかり、cv::mat を IplImage に変更する必要があります ....

ありがとう

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

c++ - Qt で 32 API を獲得

MFC を使用してイーサネット経由でデバイスと通信するプログラムを作成しました。書き直してQtに変換する必要があります。

MFC プログラムは、CreateFile、ReadFile (ネットワーク パケットを取得するため)、DeviceIOControl (通信を容易にするために使用されるプロトコルと通信するため) などの Win API 関数を使用します。

Windows.h をインクルードすると、これらの関数 (CreateFile、ReadFile、および DeviceIOControl) を Qt コードで直接使用できますか?

WaitForSingleObject や Mutex など、同時実行に使用される Win API 関数はどうですか? Qt で利用できる/利用できない Win API の部分は?

MFC コードを Qt に変換するための標準的なメカニズムはありますか?

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

qt - dll 全体で QNetworkAccessManager を使用する

QNetworkAccessManagerシングルトンを介してアクセスできるネットワーク要求を使用QPluginLoaderし、プログラムに機能を追加する拡張機能をロードする Qt5 アプリケーションがあります。現在、プラグインに静的リンクを使用していますが、すべて正常に動作します

ただし、動的ライブラリの使用に切り替えて、コア機能をアプリの他の部分から分離したいと考えています。必要な をマクロで追加declspecし、.pro ファイルに必要な調整を加えました。

問題は、dll から使用すると、非常に頻繁に (4 回中 3 回の開始など) QNetworkAccessManager、空の要求または null ポインターが返されることです。データなし、エラー文字列なし、ヘッダーなし。

これは、プラグインをロードするために使用しているコードです。

これは、起動時に呼び出されるこの非静的非テンプレート オーバーロードで使用されます。

ただし、1QThread::sleep(1);とマークされた行に挿入すると、問題なく動作しますが、読み込みが遅くなり、どこでも動作する安定したソリューションであるとは思えません。また、リクエストを送信しているサイトはMyAnimeListです。

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

python - ネットワーク経由で構造化データを送信する

私はネットワーク プログラミングの初心者なので、私の質問が少し明白に見えるかもしれません。

QtアプリケーションからPythonサーバーにデータを送信しようとしています。Pythonサーバーはそれらを処理して回答を返します。

クラスでデータを送信できるメソッドは次のQTcpSocketとおりです。

私のアプリケーションは、認証、 、ファイルなどの複雑なデータの送受信を管理structします。

この状況について多くの質問があります。

  1. 上記の方法は複雑なデータを送信するのに十分ですか?
  2. サーバー側でデータ型を処理する方法 (Python を使用) ?
  3. QNetworkAccessManagerHTTP のような他のプロトコルを (クラスで)使用する必要があると思いますか?
0 投票する
0 に答える
58 参照

c++ - ファイル送信、受信エラー

Qt Network を使用して多くのファイルを送信しようとしていますが、問題があります。クライアントは 5 つのファイルで正常に動作しますが、サーバーはすべてのファイルを受信しません。私のサーバーは 2 つのファイルを受信し、新しいファイルを送信すると、待機していた 3 番目のファイルがサーバーに到着します...

ファイルを受信するための私のコードは次のとおりです。

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

c++ - Qt5 で http 経由で PUSH サーバーに接続する方法

QNetworkAccessManager を確認すると、「プッシュ」に関連するものは何も表示されません。http://qt-project.org/doc/qt-5/qnetworkaccessmanager-members.html POST や GET とは異なり、「プッシュ」http 接続では、サーバーから定期的な更新を受信できるように接続を維持します。Qt5でHTTP RESTの「プッシュ」クライアント接続に使用する正しい機能は何ですか? または、おそらく永続的な http 接続ですか?

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

c++ - QNetworkAccessManager および QNetworkRequest からサーバー QSslCertificate を取得する方法は?

経由でリクエストを送信していますQNetworkAccessManager::createRequest(Operation, QNetworkRequest, outgoingData)。SSL 証明書のフィンガープリントが期待どおりのものであることを確認する必要があります。残念ながら、結果は空の署名をQNetworkReply返します。peerCertificate

ドキュメントには次のように記載されています。

ピア証明書はハンドシェイク フェーズで設定されるため、sslErrors() シグナルまたは encrypted() シグナルに接続されたスロットからピア証明書に安全にアクセスできます。

null 証明書が返された場合は、SSL ハンドシェイクが失敗したことを意味するか、接続先のホストに証明書がないか、接続がないことを意味する可能性があります。

したがって、エラーは、接続が既に閉じられている可能性があります。SSLプロキシが使用されている場合、このシグナルは発行されないため、シグナルを使用できませんQNetworkAccessManager::sslErrors()(これは私が防ぎたいことです)。

サーバーの SSL 証明書を取得するにはどうすればよいですか? 私がアクセスできるシグナルが他にもあり、証明書がまだ利用できる場所はありますか? 証明書を取得する別の方法はありますか?

アップデート:

QNetworkAccessManager::finished(QNetworkReply*)これで、シグナルに反応して正しい証明書を受け取ることができます。残念ながら、このシグナルは AJAX-Request を送信するときに送信されません私にとっては、これらのリクエストのフィンガープリントもチェックすることが必須です。何か案は?

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

c++ - 元のデータを持たないポスト/プット リクエストの再送信

最近私を悩ませている質問があります。製品のユーザー管理のために単一の Web サイトと対話する単純な Web ブラウザーを作成しています。私が現在抱えている問題は次のとおりです。ユーザーは、基本的な Web フォームを使用して UI を介して新しいファイルをアップロードできます。アップロードを選択すると、リクエストは次のエラー コード 205 で失敗します。

QNetworkReply::ContentReSendError - リクエストを再度送信する必要がありましたが、アップロード データを 2 回目に読み取れなかったなどの理由で失敗しました。

ユーザーが再度アップロードを試みると、ファイルはエラーなしでアップロードされます。これを修正するには、エラーが発生したかどうかを検出し、エラーが発生した場合はリクエストを再送信します。

私の問題は、リクエストに対応するデータがないことです。リクエスト自体は取得できますが、データは取得できません。このスタック オーバーフローの質問では、ネストされた if のように見えるソリューションを想像します。

ただし、このユーザーは _currentItem にアクセスできます。これは、私のプログラムがオンザフライで作成されている間に、最初にプログラムでリクエストを作成したためです。送信中のデータをキャプチャしたり、キャッシュしたりする方法はありますか? 簡単に再試行できるように、QNetworkAccessManager が以前の要求を保存することを望んでいましたが、そのようなものは見られません。洞察と助けをありがとう!

編集

明確にするために: QNetworkAccessManager を使用して、プログラムで定義されていないポスト/プットのリクエストとデータの両方を取得する方法はありますか。