2014-01-16 7 views
0

Я занимаюсь разработкой игры, и у меня есть вопрос.«Вход и выход» из сокета

У меня есть клиент, в котором пользователь может войти в игру или отключиться, используя уникальную учетную запись, хранящуюся в базе данных.

Как правильно закрыть сервер при выходе из системы и открыть его при входе в систему? Или я никогда не закрываю гнездо? Тот же вопрос касается DataInputStream и DataOutputStream.

Я постоянно получаю соединение с клиентом, так что я не знаю, как лучше всего работать с протоколированием входа/выхода из системы в пределах одной и той же среды выполнения клиента.

Спасибо. :)

+0

У меня уже есть под сервер серверного сокета, который управляется потоками. Я говорю о закрытии клиента соединения, хотя. – user3130731

+0

Что-то вроде этого: http://pastebin.com/YhNFtpHc – user3130731

+0

@MadProgrammer Сокеты TCP уже полнодуплексны. Вам не нужны два из них для одновременной двунаправленной коммуникации. – EJP

ответ

1

Просто закройте розетку. Это приведет к завершению соответствующего потока на сервере. Один логин должен равняться одному сокету.

Вы должны сделать это, закрыв внешний поток или Writer, обернутый вокруг выходного потока сокета. Это сбрасывает его и закрывает другие потоки и сокет. Закрытие входного потока и сокета до того, как это будет некорректно, и после этого это будет лишним, но если вы это сделаете, это должно быть сделано после, а не раньше, иначе вы пропустите флеш.

Смежные вопросы