Как узнать, какой TcpClient отправил сообщение в C# - PullRequest
0 голосов
/ 31 марта 2020

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

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

Альтернатива: я думал о подключении клиента RemoteEndPoint (порт Ip +) к сообщению, чтобы использовать его в качестве идентификатора, который должен быть одинаковым между двумя версиями TcpClient на клиенте и на сервер, и уникальный по сравнению с другими клиентами. Я прав?

1 Ответ

1 голос
/ 31 марта 2020

Как только сервер получил сообщение, есть ли встроенный метод, чтобы узнать, какой клиент отправил его? ; как правило, вы будете поддерживать некоторое номинальное состояние для каждого соединения вместе с каждым экземпляром Socket / TcpClient / TcpListener / NetworkStream / Pipe (ваш выбор API), чтобы при получении сообщения вы могли легко искать все что тебе нужно. В некоторых случаях может быть достаточно просто использовать экземпляр Socket / TcpClient / et c в качестве ключа, но чаще у вас будет какое-то пользовательское состояние / контекст Информация. Это в основном все зависит от вас.

...