Помогите реализовать p2p приложение (например чат) без cервера
для UDP hole punching'а нужен третий узел с белым ip.
иначе - ни как.
А тот же самый торрент по-вашему как работает? Трекеры это ведь тоже своего рода "третьи" сервера. Да и во время непосредственной передачи данных от одного пользователя другому как минимум у одного из них обязательно должен быть белый IP (или я здесь ошибаюсь?). А в ситуации, когда у всех участников сети серые IP ну вообще никак не обойтись без центрального сервера. Как в таком случае участники сети друг друга найдут?
Возможно вы имели веду:
да, я имел веду...
это диаграмма только на начальном этапе...
почитай, как это делается... лучше в каком-нить умном месте...
в примитиве и моём понимании:
есть три сервера. A, B и С. С подключён к интернету, A и B подключены через шлюзы A' и B'.
1. сервер A соединяется с C. [На A' открывается порт a]
2. С сообщает B адрес и порт A':a
3. B посылает пакет на A':a. Соотвественно этот пакет передаётся на A.
по обратному адресу A узнаёт адрес и порт B':b на которые отвечать.
Дальше С не нужен. A и B общаются через A':a и B':b.
тот же самый торрент по-вашему как работает? Трекеры это ведь тоже своего рода "третьи" сервера.
про торренты отдельный разговор... они могут и без трекера работать, как и всякие kad'ы [тока, жалко забанили... сейчас бы он выдал хорошую лекцию про это...]. Кроме того они много-чего ещё умеют... И в данном случае даже сложно свести к какому-то конкретному примеру... прийти, в котором обязательно нужен этот UDP'шный трюк... Но мораль в том, что хотя бы у одного пира должен быть белый адрес[или гейтвей с UPnP]... трекер тут не поможет...
про торренты отдельный разговор... они могут и без трекера работать, как и всякие kad'ы [тока, жалко забанили... сейчас бы он выдал хорошую лекцию про это...]. Кроме того они много-чего ещё умеют... И в данном случае даже сложно свести к какому-то конкретному примеру... прийти, в котором обязательно нужен этот UDP'шный трюк... Но мораль в том, что хотя бы у одного пира должен быть белый адрес[или гейтвей с UPnP]... трекер тут не поможет...
Про торренты это я привел просто как пример. Я как раз и пытался сказать, что никакая подобная сеть не может обойтись хотя бы без одного участника с белым IP, который будет исполнять в некотором роде функции сервера.