我有这段代码:
ServerSocket serversocket=new ServerSocket(DEFAULTPORT);
serversocket.setSoTimeout(1000);
Socket socket=serversocket.accept();
Run Code Online (Sandbox Code Playgroud)
关闭serversocket对象是否也会影响对象的状态socket?
如果我关闭serversocket对象,我仍然可以将socket对象用于我的流吗?
简短的答案是:
1)没有
2)是的
更长的答案是:
ServerSocket 等待客户端连接(他在他的接受方法中等待)。当有客户端时,accept 方法返回,更具体地说,它返回一个 Socket 对象,该对象代表服务器-客户端连接的服务器端点。如果服务器关闭其服务器套接字,他将不再侦听(他不再接受新客户端),但已与其建立套接字连接的客户端不受影响。
您的代码本身并没有“错误”,但是它只能接受单个客户端,并且只能在 1000 毫秒内连接。
这是包含示例代码的介绍:
http://download.oracle.com/javase/tutorial/networking/sockets/clientServer.html