Это звучит как довольно простое применение TCP-сокетов. Сервер будет настроен на «прослушивание» на конкретном порту (вы выбираете номер порта, скажем, 12345), и каждый клиент будет устанавливать TCP-соединение с сервером на этом порту.
Когда на сервере есть данные для отправки, он отправляет их один раз каждому подключенному клиенту. Это может означать, что сервер отправляет данные до 20 раз на разные сокеты, но это нормально. Клиент будет читать данные из своего подключенного сокета на сервер.
Существуют и другие альтернативы, такие как UDP или даже многоадресная передача UDP, но обычно они оказываются намного более сложными, поскольку UDP не гарантирует, что пакеты всегда прибывают в пункт назначения (и они могут даже дублироваться или выходить из строя. ). TCP гарантирует, что отправляемые вами данные либо будут доставлены в правильном порядке, либо не будут доставлены вообще (в этом случае соединение будет разорвано).
Примером такого рода множественных TCP-соединений является VNC :
VNC широко используется в образовательных контекстах, например, чтобы позволить распределенной группе студентов одновременно просматривать экран компьютера, которым манипулирует преподаватель, или позволить преподавателю контролировать компьютеры студентов, чтобы оказывать помощь.