2011-02-23 61 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