2011-02-23 60 views
5

我有这样的代码片段:Java Socket技术和ServerSocket问题

ServerSocket serversocket=new ServerSocket(DEFAULTPORT); 
serversocket.setSoTimeout(1000); 
Socket socket=serversocket.accept(); 
  1. 是否关闭serversocket对象也影响socket对象的状态?

  2. 如果我关闭了serversocket对象,我仍然可以使用socket对象作为我的流吗?

+0

啊?它与我的问题有什么关系? – 2011-02-23 15:34:25

回答

3

简短的答案是:

1)无

2)是

较长的答案是:

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

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

在这里被介绍包括示例代码:

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

+0

非常感谢!代码只是为了让读者明白我的意思。 – 2011-02-23 15:35:24