|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Передача данных по сети без использования сервера (peer to peer)
Здравия всем! С сетями работать начал года пол назад. И все время я писал клиент-серверные программы, они грозили утечкой трафика и потерей времени на прием передачу. Но без сервака с внешним ip коннектиться клиенты не могли, т.е. если хотябы у одного из них не внешний ip (статический или динамический в принципе не оч. важно, ибо это решаемая проблема), соединение pear to pear не установить, вылезет ошибка 10060 или 10061! Собственно назрел вопрос - как реализовать прямую передачу данных клиент-клиент без использования сервера с внешним ip? Skype под windows написан на делфях, и передача звука, видео, файлов идет напрямую клиенту! Как они это реализовали?
Последний раз редактировалось nano_bot, 06.10.2013 в 07:41. |
#2
|
||||
|
||||
Цитата:
Цитата:
Я за здоровый экстрим! Спасибо за "спасибо") |
#3
|
||||
|
||||
Цитата:
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Freeman (02.10.2013)
|
#4
|
||||
|
||||
[offtop]
а что, неплохая идея, сделать грушевые сети [/offtop] — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
Вывод какой? Можно ли средствами делфи реализовать клиент-клиент соединение?
p.s. грушу исправил! |
#6
|
||||
|
||||
Можно.
Есть UDP, есть UPnP, в конце концов - можно сделать TCP-сервером один из клиентов. Вариантов много, дерзайте. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#7
|
|||
|
|||
Цитата:
Проверка idUDPclient/server Тест №1. Запустил серверное приложение на ПК с внешним статическим ip, приконнектился с ноута, подключенного к wifi - все ок, сообщения приходят, связь есть. Тест №2. Запустил серверное приложение на ноуте, подключенном к wifi, приконнектился с ПК - связи нет, ничего не приходит! Исходник сервера(свойство bindings выбирал all, все ip'ы): Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); begin memo1.Lines.LoadFromStream(adata); end; Исходник клиента: Код:
procedure TForm1.Button1Click(Sender: TObject); begin idudpclient1.Send(edit1.text); end; |
#8
|
||||
|
||||
пробрось требуемые порты на роутере
Я за здоровый экстрим! Спасибо за "спасибо") |
#9
|
||||
|
||||
Цитата:
Я не зря сказал про UPnP. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#10
|
|||
|
|||
Цитата:
Цитата:
Последний раз редактировалось M.A.D.M.A.N., 08.10.2013 в 20:20. |
#11
|
||||
|
||||
как ты хочешь достучаться из внешней сети до своего компа, который находится за натом роутера?
только пробросом нужного порта за nat, чтобы при обращении к твоему белому IP порт автоматом переводился на твой комп во внутренней сети Я за здоровый экстрим! Спасибо за "спасибо") |
#12
|
|||
|
|||
Цитата:
|