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

Las*_*ing 1 delphi serversocket ip-address

有没有人知道将Delphi TServerSocket组件绑定到仅接受特定本地地址请求的任何方法?

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

Rem*_*eau 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;
Run Code Online (Sandbox Code Playgroud)