【发布时间】:2017-04-10 09:46:02
【问题描述】:
服务器:
int port = 7000
ServerSocket ss;
..
System.out.println("Listening on " + ss.getInetAddress() + ":"
+ ss.getLocalPort());
Socket s = ss.accept();
..
System.out.println("Accepted connection " + s.getInetAddress() + ":"
+ s.getPort());
客户:
Socket s;
..
System.out.println("Connected to " + s.getInetAddress() + ":"
+ s.getPort());
服务器开始监听:
Listening on 0.0.0.0/0.0.0.0:7000
客户端连接:
Connected to localhost/127.0.0.1:7000
但是服务器说套接字连接在不同的端口上?
Accepted connection /127.0.0.1:54682
参考:
Java the difference of Socket and ServerSocket in using port
.. ServerSocket.accept() 接受连接,并将端点包装在 一个套接字。端点与端点具有相同的本地端口号 ServerSocket,根据 RFC 793 的定义,因此 包装Socket。
和
.. 每个客户端连接都会获得一个单独的 Socket 进行通信, 所有通信都使用相同的服务器端 TCP 端口。
【问题讨论】: