0

我有一个连接到 udp 服务器的应用程序,当我在代理后面时,我似乎无法启动它。

这是我拥有的代码,当不在代理后面时工作正常。

function TfrmMain.SendCommand(ServerName, IP: String; Port: Integer; Command: String): String;
var
  Udp : TIdUDPClient;
  Count : Integer;
  Response: String;
begin
  Result := '';
  Udp := TIdUDPClient.Create(nil);
  try
    try
      Udp.Host := IP;
      Udp.Port := Port;
      if UseProxy then begin
        Udp.TransparentProxy.Enabled := True;
        Udp.TransparentProxy.Host := ProxyServer;
        Udp.TransparentProxy.Port := ProxyPort;
        Udp.OpenProxy;
      end else begin
        Udp.TransparentProxy.Enabled := False;
      end;
      Udp.Connect;
      if Udp.Connected then begin
        //Send Command and receive data...
      end;
      if UseProxy then begin
        Udp.CloseProxy;
      end;
      Udp.Disconnect;
    except
      MessageBox(Handle, PChar('There was an error connecting to server ' + QuotedStr(ServerName) + '.  '), 'Error', MB_ICONERROR);
    end;
  finally
    Udp.Free;
  end;
end;

我不知道我做错了什么,我没有与代理合作太多,它在工作中不起作用,而且它不是一个工作项目,所以我不能在那里调试它。

提前致谢。

4

1 回答 1

2

您知道 TransparentProxy 必须是SOCKS5 代理吗?你测试过什么样的代理?

于 2009-10-10T23:44:06.070 回答