2010-05-25 4 views
3

Моя задача - написать программу Messenger для внутренних и внешних сотрудников, я на самом деле сделал это. Тем не менее, я считаю, что это не очень хороший подход, используя клиентское программное обеспечение, чтобы сохранить «check-mesg» с сервера. Поэтому я думаю, что я просто имитирую программу IM.Как слуги (IM) работают (слушают)?

Я хочу, чтобы клиентское приложение стало сервером для прослушивания, и позвольте пользователю p2p разговаривать без «центра меша» на главном сервере (если не выполняется offline mesg). Вопрос в том, как я могу указать внешнему пользователю (другому клиентскому приложению) мое местоположение, пока я за маршрутизатором?

Являются ли эти другие IM-программы, запущенные на клиентской машине как сервер? и как они проходят?

Заранее благодарен!

ответ

1

Сложно подключиться к системам за маршрутизатором и не всегда возможно. Хорошо документированный способ сделать это с UDP - это STUN protocol (используется в основном для VoIP-телефонии SIP). Если невозможно выйти за маршрутизатор, вы можете использовать только сервер в открытой сети в качестве посредника (некоторые P2P-системы также способствуют подключению одинаковых сверстников к таким посредникам). В качестве промежуточного протокола SIP использует TURN. Протокол SIP для определения правильного решения для клиента - ICE.

См. Также NAT traversal.

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