Java套接字端口号会自行更改 客户 服务器

Java套接字端口号会自行更改 客户 服务器,java,sockets,Java,Sockets,我依次运行服务器和客户机。 我将1234作为命令行参数传递给客户端。换句话说,我以这种方式执行线程 java server java client 1234 这样做会将这些打印到控制台 // server /127.0.0.1 1224 // client /127.0.0.1 50261 两条线程都不会从此点继续移动。 这是怎么回事 Java套接字端口号会自行更改 不,没有。您看到的是两个不同的插座和两个不同的端口。连接由两个端点组成。客户端套接字的localPort是50261,这是出

我依次运行服务器和客户机。 我将1234作为命令行参数传递给客户端。换句话说,我以这种方式执行线程

java server
java client 1234
这样做会将这些打印到控制台

// server
/127.0.0.1
1224

// client
/127.0.0.1
50261
两条线程都不会从此点继续移动。 这是怎么回事

Java套接字端口号会自行更改

不,没有。您看到的是两个不同的插座和两个不同的端口。连接由两个端点组成。客户端套接字的
localPort
是50261,这是出站端口,服务器上接受的套接字的
localPort
是1234,这与正在侦听的端口相同

查看相应的
getRemotePort()
值。您将看到客户端的是1234,服务器的是50261,或者更确切地说,它与客户端的
localPort
一致,无论下次运行它时它是什么

两条线程都不会从此点继续移动。这是怎么回事

您需要在
ObjectInputStream
之前构造
ObjectOutputStream
,原因在Javadoc和这里的许多答案中都有解释,例如

Java套接字端口号会自行更改

不,没有。您看到的是两个不同的插座和两个不同的端口。连接由两个端点组成。客户端套接字的
localPort
是50261,这是出站端口,服务器上接受的套接字的
localPort
是1234,这与正在侦听的端口相同

查看相应的
getRemotePort()
值。您将看到客户端的是1234,服务器的是50261,或者更确切地说,它与客户端的
localPort
一致,无论下次运行它时它是什么

两条线程都不会从此点继续移动。这是怎么回事

您需要在
ObjectInputStream
之前构造
ObjectOutputStream
,原因在Javadoc和这里的许多答案中都有解释,例如

java server
java client 1234
// server
/127.0.0.1
1224

// client
/127.0.0.1
50261