問題タブ [indy-9]
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.
delphi - 同じマシン上の複数のクライアントへのマルチキャスト メッセージ
LAN 上でメッセージを 1 秒程度でブロードキャストするサーバー/サービスを作成しようとしています。サービス ディスカバリのようなものです。
メッセージは、同じマシン上または異なるマシン上にある複数のクライアント プログラムによって受信される必要があります。ただし、同時に実行されている各マシンで複数のプログラムが存在する可能性があります。
indy 9.0.18でdelphi7を使用しています
私が立ち往生している場所は、UDP(TIdUDPClient / Server)またはIP MultiCast(TIdIPMCastClient / Server)を使用する必要があるか、それが可能かどうかです...
マシンごとに1つのクライアントを使用してIPマルチキャストで動作させることができましたが、さまざまなバインディングで何度も試行した後でも..最大/最小ポートなど、解決策が見つからないようです.
delphi - TCP ウィンドウ サイズを 0、Indy、または Windows に設定しているのは誰ですか?
ネットワークが (クライアントのサイトで) 輻輳しているときに、TCP ウィンドウ サイズ 0 のヘッダーを送信することが観察されたアプリケーション サーバーがあります。
利用可能なスループットに合わせて TCP ウィンドウ サイズを公称 64K から小さく調整する役割を担っているのが Indy なのか、それとも基盤となる Windows レイヤーなのかを知りたいと考えています。
そして、それが 0 になったときに対処することができます (何も送信されず、ユーザーは待機します => ダメです)。
したがって、Indy コードへの情報、リンク、ポインタは大歓迎です...
免責事項: 私はネットワークの専門家ではありません。平均的な私にとって理解しやすい答えにしてください;-)
注: Windows Server 2003 SP2 上の Indy9/D2007 です。
詳細:
TCP ゼロ ウィンドウのケースは、DB サーバーと通信する中間層で発生します。
これは、エンド ユーザーがクライアント アプリケーションの速度低下を訴えるのと同時に発生します (それが原因でネットワーク調査が開始されました)。
ボトルネックの原因となっている 2 つの主要なネットワークの問題が特定されました。
ネットワークの輻輳が発生したときに TCP ゼロ ウィンドウが発生しましたが、それが原因である場合とそうでない場合があります。
それがいつ発生するかを知りたいので、コードで何か (少なくともログ記録) を行う方法を用意します。
核となる問題は、ウィンドウ サイズを 0 に設定するのは誰で、どこで行うのかということです。
その状態がいつ発生するかを知るために (Indy で?) どこにフックしますか?
delphi - Indy 10 を使用した Delphi
私は Delphi 4 を使用しており、Indy コード (Pv4 および Pv6) が乱雑にならないように、標準のノンブロッキング ソケットを作成したいと考えています。そして、コンピューターのIPアドレスを取得し、pingを実行できるようにしたいのですが、これを行った人は誰でもいます。Indy 10またはIndy 9で実行できますか。また、これらのことを実行するコードを作成し、テストしてください。
delphi - Indy 9 を使用するようにプログラムを作成した場合、プログラムは顧客サイトで Indy 10 を使用できますか?
Delphi 7 でプログラムを作成しました (Indy を使用する ModBus コンポーネントが含まれています)。私のマシンでは Indy 9 を使用しており、正常に動作します。ModBus プロトコルを介して他のマシンと良好に通信します。ただし、プログラムを別のマシンで実行すると、CPU の負荷が 90 ~ 100% になります。残念ながら、このマシンは私のオフィスではなく、「地球の反対側」にあります。このマシンが Indy 9 または Indy 10 を使用しているかどうかを確認するにはどうすればよいですか? さらに、Indy 10 を実行している場合、それが問題になる可能性はありますか?
delphi - hotmail/live delphi からメッセージを読む方法
私のアプリケーションでは、hotmail アカウントに届いた新しいメッセージを読もうとしています。
hotmail/live.com pop3 または IMAP から電子メールを読む最良の方法は何ですか?
そして、誰でも最良の方法のデモコードをリンクできますか?
よろしく
delphi - 長時間実行される重要な ISAPI プロセスの制御
シナリオ:
- クライアントは、IIS 7.5 サーバーへの POST を使用して ISAPI 呼び出しを行います。この呼び出しにより、ミッション クリティカルな出力が生成され、多数のユーザーに配布されます。(この場合、Indy 9 HTTP クライアントで Delphi XE を使用);
- ISAPI プロセスが完了するまでに長い時間がかかります (クライアント側でスレッド化されています)。
- POST 呼び出しが戻る前に、ユーザーが中止するかクライアント マシンがダウンし、クライアント側の接続が切断され、IIS 7.5 サーバーで ISAPI プロセスが処理されたままになります。
質問:
- IIS 7.5 は、クライアント/ユーザーが接続を中止して強制終了したときにまだ実行されているそのスレッドに対して何をしますか?
- クライアントが切断された場合でも、サーバー側のスレッドは処理を完了しますか? それとも、IIS 7.5 がそのスレッドをある時点で強制終了し、おそらく中止されたプロセスに混乱が残るでしょうか?
- これは時間に依存しますか? サーバー側のプロセスが完了するまでにかかる時間に依存しますか?
- これを制御できますか? クライアントが中止された場合でも、IIS にプロセスを完了するように指示できますか? もしそうなら、どのように?
web-services - Indy IdHTTPServer GET 応答パラメーターがランダムに欠落している
タブレット ベースの HTML クライアント用の Delphi ベースの Windows サーバーを作成しています。
Web サーバーに期待されるように、ほとんどのファイルは未処理で提供されますが、少数の特別なキーワードは、サーバー上の他のソフトウェアとやり取りする特別なコマンドとして解釈されます。
ほとんどの場合、すべて問題ありません。しかし、その後、一見ランダムにアクセス違反が発生し、GET パラメータの 1 つを取得しようとしているときに発生します。
これは私を怒らせたので、すべてを関数にカプセル化し、TIdHTTPRequestInfoデータ (ここではクラス内のパブリック プロパティRequestとして示されています) の存在をテストし始めました。
2 つの Assigned() チェックのいずれかがトリガーされるとは実際には予想していませんでしたが、ランダムに 2 番目のチェックがトリガーされ、「WHERE IS REQUEST PARAMS?」と表示されます。F5 キーを押した後、ログ ファイルに記録されます (ゆっくりとサーバーを叩いているわけではありません)。
ブロック内にブレークポイントを設定し、そのポイントに達したときに Request の値を調べると、TIdHTTPRequestInfo 構造全体がデフォルトの空のデータで満たされます。ブラウザをチェックして、送信されたリクエストを確認すると、それは私が期待するものです...(通常、「/details?id=222」のリクエストのみ)。
私は Windows 7 64 ビットで開発していることに注意してください。そのため、このようなことが原因であることに常に不安を感じています。64ビットの奇抜さが原因であることが判明した障害に何度も遭遇しました。
追加情報: Indy 9、Delphi 2007。
うまくいけば、これは理解するのに十分明確でした. 十分な情報を提供できていないため、特定の回答を探しているわけではありません。ここからどこへ行くべきかについての提案を探しています。とても有難い!:)
delphi - Indy9生のEメールヘッダーを取得しますか?
Indy9には、転送エンコーディングがまだ含まれている特定の生の電子メールヘッダー(たとえば、「Subject」または「From」)を取得する方法がありますか(つまり、Unicodeサポートが不十分な古いバージョンのDelphiでDecodeHeaderによってマングルされていません)、または、この情報を抽出するために電子メールヘッダー全体を手動で解析する必要がありますか?
delphi - TIDPEERTHREAD への IndyHandle
Delphi7でIndy9を使用しています。ロングワード (Athread.Handle) を TIDPEERTHREAD ポインターにキャストしたいと思います。これを行う方法はありますか?または、ポインターをロングワードに「保存」できる他の方法はありますか?
前もって感謝します。
delphi - Delphi Indy IdUdpClient読み取り操作、データが返されません
電子機器から送信される情報を読み取る必要があります(UDPプロトコルを使用)。Delphi 7でIndyコンポーネント(バージョン9)を使用する際に問題が発生しました。以下に私のコードを示します。
「bytes_received」の出力値は0であり、明らかに「バッファ」コンテンツは私が期待するものではありません...私は何が間違っているのですか?
前もって感謝します、
イマノール