Постоянное чтение / запись данных через порт TCP / IP. Который из? - PullRequest
2 голосов
/ 29 декабря 2010

К сожалению, я не знаю много сетей.Я пишу программу, которая имеет две версии.Версия сервера и версия клиента.Предположим, что клиентские версии установлены, скажем, на 20 ПК, которые подключены к серверу через Ethernet.Клиентские версии должны ПОСТОЯННО получать некоторые данные с сервера.Данные являются своего рода последовательными.Я хотел узнать, как транслировать данные, которые обновляются каждую секунду, и сделать их доступными для всех других компьютеров в сети.Могу ли я использовать для этого порт HTTP? Например, запись данных на страницу HTML или что-то еще?Или есть лучший порт или метод для этого?

Любые идеи будут с благодарностью.

Ответы [ 2 ]

4 голосов
/ 29 декабря 2010

Это звучит как довольно простое применение TCP-сокетов. Сервер будет настроен на «прослушивание» на конкретном порту (вы выбираете номер порта, скажем, 12345), и каждый клиент будет устанавливать TCP-соединение с сервером на этом порту.

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

Существуют и другие альтернативы, такие как UDP или даже многоадресная передача UDP, но обычно они оказываются намного более сложными, поскольку UDP не гарантирует, что пакеты всегда прибывают в пункт назначения (и они могут даже дублироваться или выходить из строя. ). TCP гарантирует, что отправляемые вами данные либо будут доставлены в правильном порядке, либо не будут доставлены вообще (в этом случае соединение будет разорвано).

Примером такого рода множественных TCP-соединений является VNC :

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

1 голос
/ 29 декабря 2010

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

Многоадресная рассылка по TCP / IP HOWTO:

http://www.ibiblio.org/pub/Linux/docs/howto/other-formats/html_single/Multicast-HOWTO.html#sect-trans-prots

...