Отправить строку сокета с сервера на указанный c клиент - PullRequest
0 голосов
/ 24 апреля 2020

Я использую язык C#, чтобы позволить клиентам, разработанным на платформе WPF, отправлять строку через сервер другим клиентам.

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

Это то, что я делаю на сервере.

foreach (Socket _connectedUsers in clientSockets)
{
    byte[] data = Encoding.UTF32.GetBytes(Message);
    Socket socket = (Socket)_connectedUsers;
    socket.Send(data);
}

Что делает этот код передает сообщение всем из списка в clientSockets.

Теперь вопрос.

Как мне сделать что-то вроде:

byte[] data = Encoding.UTF32.GetBytes(Message);
Socket socket = (Endpoint User IP Address);
socket.Send(data);

1 Ответ

0 голосов
/ 26 апреля 2020

Вы должны идентифицировать клиента, которому вы хотите отправить сообщение, и сделать то же самое только для этого клиентского сокета.

var _connectedUser = FindClientById( client.Id, clientSockets );
byte[] data = Encoding.UTF32.GetBytes(Message);
Socket socket = (Socket)_connectedUser;
socket.Send(data);

Таким образом, вам необходимо идентифицировать clientSocket, который представляет желаемого клиента отправить сообщение на.

...