Сетевые концепции низкого уровня C / C ++ для программирования в реальном времени? - PullRequest
4 голосов
/ 02 июля 2011

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

Был бы кто-нибудь из вас так любезен, чтобы указать мне на темы, по которым я мог бы Google, чтобы помочь мне?Большинство моих книг по Си на самом деле не касаются сетей, а мои книги по С ++ рассматривают сети как основную тему.Например, у меня не было бы больших проблем при создании UDP-соединения между двумя компьютерами, но каким образом вы можете сделать соединение наиболее эффективным?

Заранее спасибо

Ответы [ 3 ]

8 голосов
/ 02 июля 2011

Точно так же, как вы знаете: Реальное время означает, что у вас есть ограничение по времени для вашего приложения, это не обязательно означает «быстрый» или «быстрый» или «эффективный»,Операция в реальном времени может занять 1 час, но она будет в реальном времени, если она ограничена продолжительностью не более 1 часа.

Что касается работы в сети - это само по себе не является реальным временем, поскольку вы не можетеконтролировать другую сторону.Существуют различные протоколы «реального времени», которые по-разному обрабатывают это ограничение (поскольку у вас есть временные ограничения для таких приложений, как синхронизация часов, потоковая передача видео / аудио и т. Д.), Поэтому вам необходимо изучить эти конкретные протоколы - по мере необходимости.Одним из примеров является RTP .Вы можете видеть, что это довольно сложно, а не просто UDP-сообщение, написанное «эффективным» способом.

Общее сетевое программирование зависит от системы, но вы можете начать с Работа в сети UNIX и BSD Sockets , чтобы получить идею.

1 голос
/ 02 июля 2011

Я рекомендую вам узнать о работе в сети в среде Unix.Ищите книги на тему "Сетевое программирование Unix".Он имеет дело с вещами очень низкого уровня.Вы будете использовать спецификацию POSIX и ANSI / ISO C для написания сетевых программ.Обе спецификации сплелись истории, поэтому это может быть немного запутанным в начале.

0 голосов
/ 02 июля 2011

Не знаю много о сети, я однажды сохранил эту книгу для чтения Межсетевое взаимодействие с TCP / IP

...