2
C類繼承Thread套接字關閉VS的InputStream接近
static Queue<Socket> socketQueue
Make connection to another server or client
And then add socket to socketqueue
類延伸線
method a
bufferedinputstream bis = socketQueue.poll
Do work
Make bis null without closing it<br>
b級延伸線
Method b
Bufferedinputstream bis = socketqueue.poll
Do work
Make bis null without closing it
我的確讓bufferedinput流空,因爲我不想關閉連接的套接字。幾個帖子告訴我,關閉輸入/輸出流也會關閉套接字。 每當我使用輸入/輸出流與套接字,我通常關閉流和套接字,如果它不爲空。
我在這裏要做的是在不需要再次連接的情況下,使輸入或輸出流成爲活動和重用。
我試過socket.shutdowninput和output,但是,當我使用套接字創建另一個輸入/輸出流時,會引發異常。
有什麼我誤解或缺少在這一點上?
感謝您的回答。所以我無法用一個連接的套接字創建多個數據流,同時自由關閉其中一個並仍然使用其他套接字。 – handicop 2012-01-11 22:30:08
對。如前所述,你需要將鏈接存儲在某個地方並從那裏使用它們;通常的做法是隻要您需要時使用存儲的流。這在多線程場景中可能不切實際,但在這種情況下,即使多個流寫入相同的套接字,您也必須非常小心,不要輕易破壞所有內容。 :) – Bombe 2012-01-12 08:04:33
每次你需要它們時,你確實可以從套接字中獲取它們。 – EJP 2016-02-25 22:14:56