0

ソケットがホストに接続できないときにソケットをバックアップホストに接続したいので、これを試しました:

if prclient.Socket.connected = false then
begin
prclient.Active := false;
prclient.Port := PORT;
prclient.Host := HOST;
prclient.Active := true;
prclient.Open;
sleep(500);
if prclient.Socket.Connected = false then
begin
prclient.Active := false;
prclient.Host := BACKUPHOST;
prclient.Active := true;
prclient.Open;
end;
end;

でも今は全然繋がらない。動作するスクリプトを知っているのは誰ですか?

4

1 に答える 1

0

ブロッキングモードでソケットを使用している場合、接続が失敗すると、Active:=TrueOpen()(一緒に使用すべきではありません!) の両方で例外が発生します。

prclient.Port := PORT;
prclient.Host := HOST;
try
  prclient.Open;
except
  prclient.Host := BACKUPHOST;
  prclient.Open;
end;

ソケットをノンブロッキング モードで使用している場合、(ソケット API 関数が失敗しない限り) 例外は発生せず、接続はバックグラウンドで試行され、最終結果はOnConnectまたはOnErrorイベントによって通知されます。接続はそれぞれ成功または失敗します。

于 2014-04-24T19:11:01.727 に答える