問題タブ [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.
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
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
、ネットワーク要求と応答を使用してファイルを個別に取得しますか?ファイル名のファイル固有の部分を除いて、おそらく上記と同じことを行う必要があると思います。それを使って何かをしますが、それを行う方法がわかりません. ありがとう!
c++ - opencvグレースケールとカラー画像をQtのftpサーバーに送信する方法は?
Qt 5.2 の QNetworkAccessManager オブジェクトを使用して、OpenCV シングル チャネル イメージ (CV_8UC1) とマルチチャネル イメージ (CV_8UC3) を ftp サーバーに送信したいと考えています。
次のいずれかの形式でデータを送信する QNetworkAccessManager の put メソッドを試しました。
ハードディスクから読み取ったテキストファイルまたは画像に対しては正常に機能します。しかし、この方法を使用してRAMにあるopencvグレースケールおよびカラー画像を送信する方法がわかりませんか?
形式を Qbytearray に変更してから送信する必要があると思いますが、インターネットを検索しても有用なものは見つかりませんでした。私のアプリケーションには適していないこれを見つけただけで、その画像を生成するのに時間がかかり、cv::mat を IplImage に変更する必要があります ....
ありがとう
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 に変換するための標準的なメカニズムはありますか?
qt - dll 全体で QNetworkAccessManager を使用する
QNetworkAccessManager
シングルトンを介してアクセスできるネットワーク要求を使用QPluginLoader
し、プログラムに機能を追加する拡張機能をロードする Qt5 アプリケーションがあります。現在、プラグインに静的リンクを使用していますが、すべて正常に動作します。
ただし、動的ライブラリの使用に切り替えて、コア機能をアプリの他の部分から分離したいと考えています。必要な をマクロで追加declspec
し、.pro ファイルに必要な調整を加えました。
問題は、dll から使用すると、非常に頻繁に (4 回中 3 回の開始など) QNetworkAccessManager
、空の要求または null ポインターが返されることです。データなし、エラー文字列なし、ヘッダーなし。
これは、プラグインをロードするために使用しているコードです。
これは、起動時に呼び出されるこの非静的非テンプレート オーバーロードで使用されます。
ただし、1QThread::sleep(1);
とマークされた行に挿入すると、問題なく動作しますが、読み込みが遅くなり、どこでも動作する安定したソリューションであるとは思えません。また、リクエストを送信しているサイトはMyAnimeListです。
python - ネットワーク経由で構造化データを送信する
私はネットワーク プログラミングの初心者なので、私の質問が少し明白に見えるかもしれません。
QtアプリケーションからPythonサーバーにデータを送信しようとしています。Pythonサーバーはそれらを処理して回答を返します。
クラスでデータを送信できるメソッドは次のQTcpSocket
とおりです。
私のアプリケーションは、認証、 、ファイルなどの複雑なデータの送受信を管理struct
します。
この状況について多くの質問があります。
- 上記の方法は複雑なデータを送信するのに十分ですか?
- サーバー側でデータ型を処理する方法 (Python を使用) ?
QNetworkAccessManager
HTTP のような他のプロトコルを (クラスで)使用する必要があると思いますか?
c++ - ファイル送信、受信エラー
Qt Network を使用して多くのファイルを送信しようとしていますが、問題があります。クライアントは 5 つのファイルで正常に動作しますが、サーバーはすべてのファイルを受信しません。私のサーバーは 2 つのファイルを受信し、新しいファイルを送信すると、待機していた 3 番目のファイルがサーバーに到着します...
ファイルを受信するための私のコードは次のとおりです。
c++ - Qt5 で http 経由で PUSH サーバーに接続する方法
QNetworkAccessManager を確認すると、「プッシュ」に関連するものは何も表示されません。http://qt-project.org/doc/qt-5/qnetworkaccessmanager-members.html POST や GET とは異なり、「プッシュ」http 接続では、サーバーから定期的な更新を受信できるように接続を維持します。Qt5でHTTP RESTの「プッシュ」クライアント接続に使用する正しい機能は何ですか? または、おそらく永続的な http 接続ですか?
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 を送信するときに送信されません。私にとっては、これらのリクエストのフィンガープリントもチェックすることが必須です。何か案は?
c++ - 元のデータを持たないポスト/プット リクエストの再送信
最近私を悩ませている質問があります。製品のユーザー管理のために単一の Web サイトと対話する単純な Web ブラウザーを作成しています。私が現在抱えている問題は次のとおりです。ユーザーは、基本的な Web フォームを使用して UI を介して新しいファイルをアップロードできます。アップロードを選択すると、リクエストは次のエラー コード 205 で失敗します。
QNetworkReply::ContentReSendError - リクエストを再度送信する必要がありましたが、アップロード データを 2 回目に読み取れなかったなどの理由で失敗しました。
ユーザーが再度アップロードを試みると、ファイルはエラーなしでアップロードされます。これを修正するには、エラーが発生したかどうかを検出し、エラーが発生した場合はリクエストを再送信します。
私の問題は、リクエストに対応するデータがないことです。リクエスト自体は取得できますが、データは取得できません。このスタック オーバーフローの質問では、ネストされた if のように見えるソリューションを想像します。
ただし、このユーザーは _currentItem にアクセスできます。これは、私のプログラムがオンザフライで作成されている間に、最初にプログラムでリクエストを作成したためです。送信中のデータをキャプチャしたり、キャッシュしたりする方法はありますか? 簡単に再試行できるように、QNetworkAccessManager が以前の要求を保存することを望んでいましたが、そのようなものは見られません。洞察と助けをありがとう!
編集
明確にするために: QNetworkAccessManager を使用して、プログラムで定義されていないポスト/プットのリクエストとデータの両方を取得する方法はありますか。