2014-01-16 51 views
0

我正在開發一款遊戲,我有一個問題。「登錄和退出」套接字

我有一個客戶端,用戶可以登錄遊戲或使用存儲在數據庫中的唯一帳戶斷開連接。

如何在登出時正確關閉服務器並在登錄時重新打開?或者我應該永遠不要關閉插座? DataInputStream和DataOutputStream也是同樣的問題。

我不斷收到連接重置客戶端,所以我不知道什麼是在同一個客戶端運行時處理日誌記錄/註銷的最佳方式。

謝謝。 :)

+0

我已經有一個由線程管理的服務器套接字的子服務器。我正在討論關閉連接客戶端。 – user3130731

+0

類似這樣的:http://pastebin.com/YhNFtpHc – user3130731

+0

@MadProgrammer TCP套接字已經是全雙工的。 「同時進行雙向通信」你不需要其中的兩個。 – EJP

回答

1

只需關閉插座。這將終止服務器上的相應線程。一次登錄應該等於一個套接字。

您應該通過關閉套接字輸出流周圍的最外層流或Writer來做到這一點。沖洗它並關閉其他流和套接字。在這之前關閉輸入流和套接字是不正確的,之後這樣做是多餘的,但是如果你必須這樣做,它必須在之前完成,而不是在之前完成,否則你會錯過flush。