2

我有一个从服务器到客户端的消息发送程序,它在 adempiere 内部工作。在这里,我必须动态地提供供应端口:8080,即。端口不得硬编码。现在我在 serversocket 和 socket 上硬编码端口 8080

服务器

    ServerSocket srvr = new ServerSocket(8080, 1, InetAddress.getByName(mSession.getRemote_Addr()));

客户

    Socket skt = new Socket(ip.getHostAddress(), 8080);

请建议一种反对这种硬编码的方法。请帮我。

4

1 回答 1

2

Web 端口是运行设置过程时使用的配置数据的一部分,但一旦设置完成,服务器/客户端就不会访问它。要访问数据,您需要再次加载配置数据,如下所示:

int webPort = 8080;
ConfigurationData data = new ConfigurationData(null);
if (data.load()) {
    webPort = data.getAppsServerWebPort ();
}

ServerSocket srvr = new ServerSocket(webPort, 1, InetAddress.getByName(mSession.getRemote_Addr()));
于 2016-09-02T15:45:16.983 回答