ACE и асинхронная связь UDP - PullRequest
1 голос
/ 13 января 2011

В настоящее время я работаю в среде симуляции робототехники. Роботы, которые могут взаимодействовать с виртуальным миром, могут контролироваться / контролироваться через сетевое соединение. Для всей сети связи (и, конечно, других вещей, например, потоков) мы используем библиотеку ACE. У меня сейчас проблема в том, что мне кажется, что асинхронная часть UDP нарушена. При запуске тестовой программы «test_udp_proactor -h localhost -p 55555», которая поставляется с ACE, я всегда получаю код ошибки 89 (требуется адрес назначения). Пока что это то, что я пытался, но ничего не помогло:

  • перекомпиляция более новых / разных версий ACE
  • изменение кода test_udp_proactor, воссоздание аналогичной программы
  • изменение среды (другой ПК с 32-битным процессором и Ubuntu 9.10)

При использовании синхронных методов все работает просто отлично, поэтому с сетевым оборудованием / программным обеспечением не возникает ошибок.

Я искал в Google и на этом сайте несколько часов / дней, и кажется, что никто больше не имеет этой проблемы! По крайней мере, я не могу его найти.

Я сейчас очень расстроен, потому что, насколько я понимаю, ACE действительно зрелый и надежный. Хотя некоторые люди очень любят дизайн этого. Он используется в аэрокосмическом сообществе, где надежность и аспекты реального времени просто необходимы! Я не могу поверить, что ACE не поддерживает асинхронность. Связь UDP и / или никто другой не узнал об этом.

Может ли кто-нибудь запустить для меня простой тест с test_udp_proactor, чтобы проверить это поведение? Мы должны использовать систему, способную работать в режиме реального времени, поэтому Windows не подходит ...

Любые другие советы и / или советы, желательно от гуру ACE? : -)

Большое спасибо

1 Ответ

0 голосов
/ 13 января 2011

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

Вы можете быстро найти свою проблему.

...