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