2012-04-28 2 views
0

Если у вас есть Java-клиент Socket, подключенный к серверу ServerSocket сервера Java, как вы затем получаете объект сервера Java в классе клиента?В Java существует ли способ получить объект сервера через сокет, подключенный к его серверу?

Я посмотрел на класс Socket и, похоже, нет способа захвата объекта сервера через ион Socket.connect().

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

Чтобы выполнить инструкцию, я считаю, что мне нужно получить объект сервера.

Я задаю этот вопрос, потому что я ничего не нашел в Google или stackoverflow.com, который сочетает в себе шаблон Observer с отношениями с сервером и клиентом.

Конечно, это может указывать на мой подход неизлечимо недостатки, но если она есть, пусть это будет предупреждением для других :)

ответ

2

Это не 100% ясно, что вы просите, но здесь идет.

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

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

+0

+1 и думать о принятии. Спасибо, в частности, за второй абзац. Это намного проще, чем я думал. Я, должно быть, запутался, потому что одновременно пытаюсь реализовать графический интерфейс с AbstractActions. Я начну заново и работаю над логикой перед графическим интерфейсом. – Arvanem