如何将 TServerSocket 绑定到特定 IP 地址
How to Bind a TServerSocket to a specific IP address
有谁知道绑定 Delphi TServerSocket 组件以仅接受特定本地地址上的请求的方法吗?
服务器有多个 IP,但要求服务器应用程序仅在 运行.
时接受一个 IP 上的请求
TServerSocket
不会直接公开您要求的功能,但是可以通过一些变通方法实现。
您需要从 TServerSocket
派生一个新的 class 才能访问受保护的 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;
有谁知道绑定 Delphi TServerSocket 组件以仅接受特定本地地址上的请求的方法吗?
服务器有多个 IP,但要求服务器应用程序仅在 运行.
时接受一个 IP 上的请求TServerSocket
不会直接公开您要求的功能,但是可以通过一些变通方法实现。
您需要从 TServerSocket
派生一个新的 class 才能访问受保护的 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;