【问题标题】:Two applications working with the same ip and port两个应用程序使用相同的 ip 和端口
【发布时间】:2018-02-14 21:04:17
【问题描述】:

我启动在端口 1433 上工作的 SqlServer Express。然后我运行一个 Java 应用程序,该应用程序创建一个服务器套接字,该套接字执行到本地 ip 和端口 1433 的绑定。 我不明白为什么它没有给出执行错误。可以有两个应用程序在同一个端口上工作吗?

这是java代码:

public static void main(String[] args) throws IOException {
    ServerSocket sSocket = new ServerSocket();
    sSocket.bind(new InetSocketAddress("192.168.0.13", 1433));
}

谢谢

【问题讨论】:

  • 也许您的 SqlServer 正在 127.0.0.1 (localhost) 而不是 192.168.0.13 上运行?

标签: java serversocket tcp-ip


【解决方案1】:

您的操作系统会处理套接字,并知道它是设置为内部使用 IP 127.0.0.1 还是外部使用 192.168.0.13。一个具有相同 IP 和端口的套接字的双重绑定是不可能的。 0.0.0.0 IP 将侦听给定端口上的所有内部或外部(所有 IP)源。

附:尝试使用新的 Socket(IP, PORT)。

【讨论】:

  • 没有。显式绑定到外部接口,不绑定到 localhost。
  • sry,我不够精确并更改了它。
  • 对不起,我不明白。我已将 ip 更改为 0.0.0.0 以侦听所有接口,但它可以工作......运行 sql server express。 Sql server 可以监听其他端口吗?我现在怎么办?
  • 首先进入您的任务管理器并在详细信息选项卡中搜索您的 SQL 服务器的进程 ID (PID)。如果您在 Windows 上,请转到控制台并输入:netstat -aon 在这里您可以找到所有绑定的套接字和 PID
  • 你的 PS 到底是什么意思? InetSocketAddress 根本不是绑定,更不用说外部绑定了,Sockets 不要“绑定到所有”。
猜你喜欢
  • 2019-08-11
  • 2021-10-06
  • 1970-01-01
  • 2021-06-05
  • 2013-10-16
  • 2017-05-11
  • 2018-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多