本質上,我有一個服務器類和一個客戶端類,客戶端創建一個套接字併發送任何你輸入到服務器中的信息,寫入到所有現有套接字向量的輸出流中客戶端。它運作良好,當你關閉聊天客戶端,之後發送一條消息給下面的異常情況除外:聊天服務器寫入關閉的套接字
java.net.SocketException: Software caused connection abort: socket write error
我覺得發生了什麼事是由客戶端關閉套接字或者未關閉套接字服務器的向量的套接字,或者即使它關閉,它仍然在向量中,然後嘗試寫入一個封閉的套接字。這聽起來像什麼可能發生?我不明白socket.close()方法對於它連接的套接字究竟做了什麼。
他不需要CLOSE消息,並且客戶端無法做到的任何事情都會奇蹟般地關閉服務器上的套接字。只有服務器可以做到這一點。他只需要在兩端寫一個close()。 – EJP