Java 使用相同ip和端口的两个应用程序

Java 使用相同ip和端口的两个应用程序,java,serversocket,tcp-ip,Java,Serversocket,Tcp Ip,我启动在端口1433上工作的SQLServerExpress。然后,我运行一个Java应用程序,创建一个服务器套接字,执行与本地ip和端口1433的绑定。 我不明白为什么它没有给出执行错误。是否有两个应用程序在同一端口上工作 这是java代码: public static void main(String[] args) throws IOException { ServerSocket sSocket = new ServerSocket(); sSocket.bind(new

我启动在端口1433上工作的SQLServerExpress。然后,我运行一个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));
}

谢谢您

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


另外,尝试使用新的套接字(IP、端口)。

可能您的SqlServer运行在127.0.0.1(localhost)而不是192.168.0.13上?不。显式绑定到外部接口,不绑定到localhost.sry,我不够精确,对其进行了更改。对不起,我不理解。我已将ip更改为0.0.0.0以侦听所有接口,但它可以在sql server express运行时工作。Sql server可能正在侦听其他端口吗?我现在该怎么做呢?首先转到任务管理器,在“详细信息”选项卡中搜索SQL server的进程ID(PID)。如果您在windows上,请转到控制台并在此处键入:netstat-aon,您可以找到所有绑定的套接字,并且在那里找到PID's您的PS到底是什么意思?
InetSocketAddress
根本不是绑定,更不用说外部绑定了,
Sockets
不会“绑定到所有”。