Derby似乎忽略了端口重复

时间:2014-12-11 04:34:58

标签: derby

我在我的应用程序中配置了嵌入模式,并允许其他客户端将我的嵌入式德比连接到网络服务器模式。 (-Dderby.drda.startNetworkServer = true -Dderby.drda.portNumber = 8233)

在运行我的应用程序之前,我使用网络服务器模式derby加载了其他应用程序。问题是德比在我的应用程序中使用相同的端口8233。

其他拥有数据源的客户端表示我的应用程序的derby(嵌入式)放置数据,我无法在我的应用程序中获取数据。

我被阻止了很长时间来解决这个问题, 最后,我发现其他客户端的数据在其他应用程序的其他德比中。

我认为...... 在我的应用程序中加载嵌入式derby时,derby必须知道端口是否正在使用。 如果该端口正由其他应用程序使用,则必须在控制台中显示错误。但事实并非如此。你能解释一下吗?

感谢您的努力和时间......

1 个答案:

答案 0 :(得分:1)

操作系统是否允许两个不同的进程打开网络套接字并接受相同端口号的连接取决于许多不同的因素,包括:

  1. 正在使用哪种精确的操作系统
  2. 创建TCP套接字时为其设置的配置参数
  3. 网络配置的详细信息(例如,机器是否为多宿主,哪个确切的IP地址掩码绑定到套接字等)
  4. 像这样的问题的典型解决方案是选择一个不同的端口,一个你知道其他应用程序没有使用的端口。

    这就是Derby允许端口号轻松配置的原因。

    您可以根据自己的情况使用该解决方案吗?