2

ローカルエリアネットワークで非常にうまく機能するIndy10TidHttpServerを使用してdelphixe2にWebサービスを実装しています。

私が見つけた問題は、2つのネットワークカードを備えたコンピューターにあります。1つは正常に動作する通常のNICで、もう1つはクレジットカード処理のために電話会社に接続されたx.25回線にトラフィックをルーティングする仮想NICです。

サーバーが再起動された場合(そして私は頻繁に再起動するのが好きです)、Windowsは最初に仮想NICをマウントし、サーバーは何らかの方法で仮想NICにバインドされます。私はそれがどのように機能するのか全く理解していません。

indyのドキュメントを読んで、すべてのIPにバインドする必要があり、両方のネットワークをリッスンする必要があることを確認しました。しかし、それは起こっていません。8888に割り当てられているポートを除いて、基本的にデフォルト構成を使用しています。

このNICをindyhttpサーバーから除外する方法はありますか?

可能であれば例を探しています。

ローカルネットワークは192.*の範囲にあり、仮想NICは187.*の範囲にあります。今日、それを機能させるには、仮想NICを無効にし、サーバーをロードしてから、仮想NICを再度有効にする必要があります。正常に動作します。しかし、再起動した場合は、それをすべてやり直す必要があります。

4

1 に答える 1

2

サーバーをアクティブ化する前にバインドを手動で追加および構成することにより、サーバーを特定のカードにバインドできます。基本的な例は次のようになります。

uses IdSocketHandle;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  SHandle: TIdSocketHandle;
begin
  TIdTCPServer1.Bindings.Clear; //make sure there's no other bindings
  SHandle := IdTCPServer1.Bindings.Add;
  SHandle.IP := '192.168.0.15';
  SHandle.Port := 3748;
  IdTCPServer1.Active := True;
end;

ご覧のとおり、例はを使用して行われTIdTCPServerます。TIdCustomTCPServerを含むすべての子孫で機能しますTIdHTTPServer

于 2013-03-20T18:41:09.207 に答える