Java Socket和ServerSocket问题

Ric*_*dor 5 sockets

我有这段代码:

ServerSocket serversocket=new ServerSocket(DEFAULTPORT);
serversocket.setSoTimeout(1000);
Socket socket=serversocket.accept();
Run Code Online (Sandbox Code Playgroud)
  1. 关闭serversocket对象是否也会影响对象的状态socket

  2. 如果我关闭serversocket对象,我仍然可以将socket对象用于我的流吗?

Ber*_*ann 3

简短的答案是:

1)没有

2)是的

更长的答案是:

ServerSocket 等待客户端连接(他在他的接受方法中等待)。当有客户端时,accept 方法返回,更具体地说,它返回一个 Socket 对象,该对象代表服务器-客户端连接的服务器端点。如果服务器关闭其服务器套接字,他将不再侦听(他不再接受新客户端),但已与其建立套接字连接的客户端不受影响。

您的代码本身并没有“错误”,但是它只能接受单个客户端,并且只能在 1000 毫秒内连接。

这是包含示例代码的介绍:

http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html