Нет необходимости отправлять такого рода сообщения.
Прежде всего, TCP ориентирован на соединение, поэтому, пока у вас есть соединение, вы будете живы.
Вы можете проверить, все ли еще подключены, используя свойство TCPClient.Connected .
Во-вторых, TCP работает по IP, поэтому в заголовке IP вы можете найти IP-адрес отправителя (находится в свойствах сокета), поэтому не нужно отправлять IP-адрес.
Проверить удаленный IP-адрес можно с помощью свойства TCPClient.Socket.RemoteEndPoint .
Наконец, единственное, что вас может заинтересовать - это «часть, связанная с 3 клиентами», которую можно кодировать как простое целочисленное преобразование. То есть 4-х байтовый звуковой ритм.
Установка соединения в середине сложна и не имеет ничего общего с протоколами связи. И, честно говоря, это адская работа, если соединение уже присутствует, вам нужно найти способ заставить клиент или сервер сбросить его, а затем сделать так, чтобы сервер восстановил его в вашем MIDM. Более того, если соединение установлено непосредственно с IP-адресом, вам придется каким-то образом связываться с таблицами маршрутизатора, чтобы атака была успешной, если это не возможно, возможно, отравление DNS будет работать для вас ... в любом случае, задача не из легких.
Это только идеи ... это зависит от класса сети, если у вас есть физический доступ или нет, если клиент и сервер доверяют друг другу (как будто они являются вашими приложениями) и так далее ... Я предполагаю, что все это, по крайней мере, этично или образовательно ... :)