2010-05-17 6 views
1

Я хотел бы написать приложение, которое будет передавать данные с 2400 бод через Интернет с сервера на несколько клиентов. Данные будут одинаковыми для каждого клиента, и, вероятно, было бы неплохо отправить его как поток UDP, поскольку точность точных данных не является 100% -ной необходимостью, так как в формате данных имеются контрольные суммы, и данные будут неоднократно пересылаться по петле.Передача данных в реальном времени нескольким клиентам

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

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

+0

Какая операционная система? IPv4 или IPv6? Вероятно, вы должны google 'IP multicast' – nategoose

+0

Linux/Windows, не имеет значения, и IPv4. Сделаю, спасибо. – AriX

ответ

1

Возможно, вы захотите взглянуть на одноадресную передачу, особенно если ваши клиенты находятся в нескольких каталогах. Вы должны иметь возможность отправлять трафик TCP или UDP с вашими данными каждому из ваших клиентов, особенно если потребности в полосе пропускания малы. Многоадресная рассылка IP лучше всего подходит для групп узлов в сетях рядом друг с другом.

Повторно перебирайте адреса клиентов и отправляйте свои данные. Умерьте скорость, с которой вы работаете, чтобы ограничить скорость передачи данных.

Обратите внимание на проблему надежности: правильность не единственная проблема с UDP; у вас также нет подтверждения того, что ваши данные были получены, и никаких гарантий при заказе.

Baud здесь действительно не применим, поскольку данные сегментированы на более или менее дискретные куски.

+0

Правильно, мне не нужно подтверждение, мне просто нужно его отправить. И что касается бода, мне просто нужно немного ограничить скорость. Дело не в том, что мне нужны сами данные, чтобы выходить на 2400 бод, очевидно, это интернет, и это не относится. Дело в том, что данные будут передаваться через последовательный порт со скоростью 2400 бод с ПК на сортировку символов, поэтому мне просто нужно не отправлять данные так быстро, что они перегружают сообщения, идущие через последовательный , Я, вероятно, просто установлю 1-секундную задержку между сообщениями, что должно сделать все в порядке. – AriX

+0

Что касается одноадресной передачи, вы предлагаете мне однозначно отправлять данные на каждый IP-адрес? Возможно, это то, что я делаю. – AriX

+0

Да, я просто отправлял данные на каждый IP-адрес отдельно. Если бы я был вами, я бы сделал это с одноадресной рассылкой и с задержкой сна, чтобы начать с этого, и уточняйте оттуда, чтобы удовлетворить ваши потребности. – WhirlWind

Смежные вопросы