Unix Domain Sockets, Udp Sockets Цель C что использовать? - PullRequest
1 голос
/ 03 декабря 2010

Я пишу интерактивное видео приложение для редактирования, которое использует Quartz Composer в качестве видеопроцессора реального времени.Время и синхронизация очень важны в моем приложении.

Мое первое приложение, написанное на C ++, должно отправлять такие команды, как «воспроизведение» по этому «пути», «этот файл видео», «запуск» в это «время», «остановка» и т. Д. Для этого сокеты udp работают просто отлично.,Я использую один сокет для каждой команды, поэтому порядок команд никогда не нарушается, такая вещь будет фатальной!

Реальная проблема заключается в том, что мой Quartz Composer Patch начинает посылать текущее время моему второму приложению, которое будет контролировать полосу моей временной шкалы, чтобы у пользователя было графическое представление фактического продвижения видео в сокетах Udp.просто недостаточно быстры и отправляют пакеты в другом порядке или дублируют.

Я думал, что домен сокетов Unix мог бы помочь мне, но когда я посмотрел все примеры, которые я нашел в сети, где они написаны на C, а не на objCа плагины для Quartz Composer могут быть закодированы только в objC. Я знаю, что мог бы самостоятельно обернуть код C, но перед тем, как приступить к этой простой задаче, как быть уверенным, что сокет Unix - это то, что мне нужно?

Действительно ли сокет Unix достаточно быстрый и надежный для того, что я пытаюсь сделать?

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

1 Ответ

0 голосов
/ 05 декабря 2010

Да, я использую UDP для локальной машины. Мне интересно, достаточно ли бывают сокеты доменов Unix для отправки, например, обновлений 25 / s или 30 / s в мой графический интерфейс в другом приложении, UDP просто застревает...

Сокеты Unix могут быть немного быстрее, и, что более важно, они обеспечивают надежную доставку (в отличие от UDP).Но ваш комментарий о скорости и идея о том, что UDP как протокол не позволяет вам публиковать 30 обновлений в секунду в графическом интерфейсе, заставляет меня думать, что проблема заключается не в выборе протокола, а в другом месте.Другими словами, я думаю, что сокеты Unix будут быстрее, чем UDP, но я сомневаюсь, что они решат вашу актуальную проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...