N-стороннее общение клиента с клиентом с использованием C ++ и Boost :: Asio - PullRequest
2 голосов
/ 19 января 2012

Я играл с Boost :: Asio и проверял его возможности, когда дело касается n независимых пользователей, сотрудничающих для вычисления функции на общих входах.

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

Я полагаю, эффективно я ищу "активное" установление каждым пользователем, в отличие от распространенных примеров клиент-сервер, которые можно увидеть в Интернете.

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

Есть ли какие-либо предложения относительно того, как этот тип протокола должен быть реализован?Стоит ли рассматривать использование потоков для управления отправкой и получением?

1 Ответ

0 голосов
/ 20 января 2012

Если вы работаете в Unix-системах, таких как Linux, я бы начал с гораздо менее сложного решения с использованием языка программирования C (или C++, если вам это нужно), но без использования библиотеки Boost.Просто используйте вместо этого простой старый select syscall.См. manpage и обучающую справочную страницу .

Только после этого я переключусь на что-нибудь необычное, например Boost.

См. Также этот урок о программировании сокетов BSD.

...