如何将TServerSocket绑定到特定的IP地址

时间:2016-10-17 19:26:54

标签: delphi ip-address serversocket

是否有人知道如何绑定Delphi TServerSocket组件以仅接受特定本地地址的请求?

服务器有多个IP,但要求服务器应用程序仅在其运行时接受一个I​​P上的请求。

1 个答案:

答案 0 :(得分:5)

TServerSocket并未直接公开您要求的功能,但只需一点解决方法即可。

您需要从TServerSocket派生一个新类才能访问受保护的TAbstractSocket.Address属性。这是TServerSocket绑定的值。由于该属性通常不可访问,因此它仍然是一个空字符串,与绑定到0.0.0.0(即INADDR_ANY,即所有本地IP)相同。

一旦您可以访问Address属性,您可以在激活服务器之前将其设置为您想要的任何IP,服务器将相应地绑定。

例如:

type
  TServerSocketAccess = class(TServerSocket)
  end;

TServerSocketAccess(ServerSocket1).Address := '192.168.0.1';
ServerSocket1.Active := True;