Socket Server: управление клиентскими подключениями

2

Мне интересно, как реализовать управление клиентами для сервера сокетов.

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

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

Как вы подходите к этой проблеме? Или это совершенно неприменимо таким образом?

Спасибо!

Теги:
sockets
asyncsocket

1 ответ

2
Лучший ответ

Если вы используете TCP/IP, вы можете использовать IP addres и порт для уникальной идентификации клиентов. А также вы можете избавиться от своего соединения после события разъединения. Если IP-адрес и порт недостаточно, чтобы однозначно идентифицировать клиента, вы можете использовать GUID. И снова с помощью TCP/IP во многих случаях вы можете избавиться от соединения после события разъединения.

  • 0
    Спасибо, я бы хотел немного больше следовать этому подходу GUID. Это имеет смысл, только если серверу сообщают, какой GUID имеет каждый клиент. Поэтому мне нужно было бы извлечь из Socket и добавить мой GUID. Но затем у меня возникают проблемы с обработкой всех методов из Socket, которые возвращают экземпляр Socket .
  • 1
    В большинстве случаев вы должны предпочесть композицию наследованию. Я имею в виду, что вы не должны наследовать от Socket, вместо этого вы должны создать свой собственный класс, который содержит Socket и GUID. Или ваш класс сервера может содержать словарь с Socket в качестве ключа и GUID в качестве значения.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню