問題タブ [indy]
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.
windows - UDP メッセージ処理の改善
UDP 経由で 20 個のカスタム ハードウェア ボックスからデータを受信する PC プログラムがあります。これらの各ボックスは、PC 上の単一の UDP ソケットに UDP メッセージを継続的に送信します。メッセージにはすべて 10 ~ 150 バイトのデータが含まれており、各ユニットは 12 秒で約 20 個のメッセージを送信します。
テストでは、一部のメッセージが PC によって見落とされていることが示されています。ネットワーク上のボックスが少ないほど、メッセージの見逃しが少なくなります。
長期的な解決策は、データをハードウェアにバッファリングし、必要に応じて PC が TCP 経由でデータを取得できるようにすることですが、その解決策が展開されるまで、メッセージの欠落の問題を短期的に解決/最小化する必要があります。- PC をアップグレードする - 送信前に不要なメッセージを除外する - ハードウェア内の個別の UDP メッセージを 1 つの大きなメッセージに結合する - PC 内の複数のソケットを使用してメッセージを受信する
これらのアイデアに関するフィードバックと、見逃した可能性のあるものを探しています。
受信プログラムは、Indy9 を実行する C++Builder プログラムです。
asp.net - Delphi と TIdHttp を使用して ASP .NET ページにデータを投稿する
この単純なhttp://issamsoft.com/app2/page1.aspxのような Asp .net ページがあり、 TIdHttp を使用してデータを投稿し、応答からデータを抽出したいと考えています。私は次のようにDelphi2009でそれをやろうとしました:
しかし、TIdhttp は常にエラー (HTTP/1.1 500 内部サーバー エラー) を出します。
現在、POST を発行すると、IdHTTP はプロトコルを最初の値とは関係なく自動的にバージョン 1.0 に設定します。これは、RFC を完全に尊重しないサーバーがいくつかあるためです。特に、Expect: 100-Continue ヘッダーの送信/送信を尊重しません。RFC を壊さない最適な解決策が見つかるまで、POSTS をバージョン 1.0 に制限します。
私のコードに何か問題がありますか、それとも TidHttp のバグですか? 問題が TIdHttp にある場合、回避策はありますか? または Indy コンポーネントを使用する他のソリューションはありますか?
そのほか。WebClient を使用して C# でソリューションを作成しましたが、非常にうまく機能します。
Delphi の WebClient のような (良い/信頼できる) クラスはどこにありますか? 無料優先:)
編集:VIEWSTATE、EVENTVALIDATIONのメカニズムが十分に明確であることを願っています。それらはサーバーによって生成されたハッシュ値であり、変更される可能性があります(すでに変更されています)。元のプロジェクトには、現在のVIEWSTATE、EVENTVALIDATION値を抽出するためだけのコードがあります。ただし、例を単純明快にするためにその部分を省略しているため、上記のコードを試す場合は、現在のページ ソースから VIEWSTATE,EVENTVALIDATION 値を取得する必要があります。
delphi - Indy FTP 転送タイプ
IdFTP (Indy 10) コンポーネントを使用して、リモートの場所からいくつかのファイル (zip および txt) をダウンロードしています。各ファイルを取得する前に、TransferType をバイナリに設定します。
バイナリ モードを使用して、テキスト ファイルとバイナリ ファイルの両方をダウンロードできると思います。ただし、zip ファイルが正しくダウンロードされているのに、テキスト ファイルの内容が台無しになっているようです。テキスト ファイルの TransferType を ASCII に設定すると、期待どおりに動作します。特定のファイルに設定する TransferType を検出するにはどうすればよいですか? 共通点や自動設定はありますか?
delphi - Indyとの接続がまだ有効かどうかを判断するにはどうすればよいですか?
TCP通信にはIndyを使用しています(D2009、Indy10)。
クライアントのリクエストを評価した後、クライアントに回答を送信したいと思います。したがって、このようにTIdContextを格納します(擬似コード)
しかし、クライアントが要求と応答の送信準備ができている間のどこかで接続を終了した場合はどうなりますか?コンテキストがまだ有効かどうかを確認するにはどうすればよいですか?私は試した
しかし、それは役に立ちません。場合によっては、プログラムがハングし、実行を一時停止すると、現在の行がif条件の行であることがわかります。
ここでは何が起きるのですか?デッド接続を使用して送信しようとしないようにするにはどうすればよいですか?
delphi - Delphi 6 と Indy SSL 接続が機能しない
SSL 経由で Web サービスを利用する必要があります。これを達成するために、Indy を使用してクライアント証明書を読み取り、https 経由で SOAP リクエストを書き込む Web クライアントを Delphi 6 で構築しました。コードのコンパイル済みバージョンは、IIS 5.0 で実行される DLL です。ローカル マシンでコードをテストした後、問題なく動作します (プロキシの背後にいます)。しかし、コードが prod サーバー (プロキシではない) にデプロイされた後、SSL 接続は失敗し、「SSL との接続中にエラーが発生しました」と表示されます。
これが私のコードです:
また、このコードをexeプログラムにコンパイルしてみましたが、動作します。他に設定/追加する必要があるものはありますか?
ありがとう。
delphi - TIdFTP を使用するアプリが Delphi 5 から Delphi 2009 に移行されない...アップロードが破損する
TIdFTP を使用する Delphi 5 アプリを作成しました。それは何年もうまく機能しています。唯一の目的は、Excel ファイルをアップロードすることです。
マシンをリロードしたため、最近 delphi 2009 に移行しましたが、delphi 5 はなくなっています。
アプリはまだ動作しているように見えますが、1.5 MB のファイルのほとんどでファイルが破損しています。バイトが削除されたようで、アップロードされたファイルは元のファイルよりも短くなっています (約 200 バイト)。
私の最初の考えは転送タイプだったので、バイナリに設定しましたが、それ以上はわかりません。
何か案は?
ありがとう!mp
delphi - URL からの画像の読み込み - 画像が存在しない場合に例外をキャプチャする方法
私の問題は、 URL からの画像の読み込みについて私が尋ねた他の質問に関連しています。以下のコードは機能します。ただし、画像を取得しようとすると(そこにあると思われます)問題が発生しましたが、明らかに削除されました。アプリケーションは認識せず、エラーを返します。着信エラーをキャプチャして防止する方法はありますか。提案をいただければ幸いです。それは彼の行で起こります:
ありがとう、クリス
delphi - indy クライアント 9 を使用して Delphi-7 で開発された ActiveX から SSL 経由で pop3 に接続すると、SSL ライブラリが見つかりませんか?
indy クライアント (v.9) を使用して、ssl 経由で pop3 に接続することで、delphi 7 で activexform を開発しています。残念ながら、Web ブラウザーで ActiveX をロードすると、SSL ライブラリー (ssleay32、libeay32) が見つからないというメッセージが表示されます。
これを回避する方法を知っている人はいますか?
(または、Internet Explorer ウィンドウで実行する必要があるアプリケーションから SSL 経由で pop3 に接続する他の方法を知っている人はいますか?)
ミケーレ
delphi - TIdTCPServer がソケットからデータを読み取らないことがある
TIdTCPServer (インストールに付属の Delphi 2009 および Indy 10) の OnExecute に次のコードがあります。これは、このサイトの他の例と非常によく似ています。
CheckForDataOnSource(10) が False を返すため、データを読み取らないことがあります。ただし、その行でデバッガーを停止すると、InputBuffer のバイトで送信したデータを確認できます。私がしなければならない他のセットアップや、これを常に機能させる他の方法はありますか? このコードは何度も実行されますが、常に CheckForDataOnSource(10) で失敗します。
また、補足として、一部の人々が AContext.Connection.Socket の代わりに AContext.Connection.IOHandler を取得し、上記のコードと同じことを行う場所の周りの Indy のコードに気付きました。「正しい」ものは何ですか?使用する。
ありがとう
ブルース
delphi - スレッド化されたアプリケーションでの Indy のエラー!
TidHTTP が GET の後でサーバーの応答を待っているときにスレッドが終了しているときに、TidHTTP に関連するいくつかのメモリ リークが発生しました。
例 :
アプリケーションを閉じるときに、これでスレッドを停止します。
メモリーリークを解決するにはどうすればいいですか?
ありがとう :)