Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связь по Ethernet средствами Delphi
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
011119xx
Кто знает как легко и непринужденно связать 2 компа по Ethernet средствами Delphi? Необходима передача информации в обоих направлениях. Хорошо бы заиметь проект с исходным кодом.
Vladimir_J
Цитата(011119xx @ Jan 19 2009, 14:46) *
Кто знает как легко и непринужденно связать 2 компа по Ethernet средствами Delphi? Необходима передача информации в обоих направлениях. Хорошо бы заиметь проект с исходным кодом.


Добрейшее время суток. smile.gif


Связать можно два компа по Ethernet можно при помощи "Сокетов":

1. Есть компоненты INDY, которыми можно это зделать (если по TCP то на одной стороне ставите Server, на другой Client. Если UDP то фожно на обоих сторонах ставить Server).

2. Есть есще в закладках Internet тоже два компонентика Client и Server, аналогично на одной стороне сервер с другой клиент ....

3. Либо найти в Инете библиотеку для работы с сокетами .....

Но если Вы новичок в этой области, то дешевле всего при помощи Компонентов .....

С Уважением, Владимир.

и Удачи Вам во всех Ваших начинаниях smile.gif 



P.S. Во вложении примеры из Инета по UDP обмену smile.gif
011119xx
Спасибо. Буду смотреть.
011119xx
Цитата(Vladimir_J @ Jan 19 2009, 19:22) *
Добрейшее время суток. smile.gif


Связать можно два компа по Ethernet можно при помощи "Сокетов":

1. Есть компоненты INDY, которыми можно это зделать (если по TCP то на одной стороне ставите Server, на другой Client. Если UDP то фожно на обоих сторонах ставить Server).

2. Есть есще в закладках Internet тоже два компонентика Client и Server, аналогично на одной стороне сервер с другой клиент ....

3. Либо найти в Инете библиотеку для работы с сокетами .....

Но если Вы новичок в этой области, то дешевле всего при помощи Компонентов .....

С Уважением, Владимир.

и Удачи Вам во всех Ваших начинаниях smile.gif 



P.S. Во вложении примеры из Инета по UDP обмену smile.gif


Попробовал оба примера. Оба работают в пределах комнаты. Но вот связаться с удаленным компом, который стоит где-то далеко не получается. В чем может быть проблема?
AlexandrY
Мда, Indy здесь уже мало поможет.
Мешают файрволы и NAT-ы. Это такие защитные механизмы в роутерах против удаленных атак.

Стандартный способ организации связи через файрволы - использование технологии VPN.
Но в палитре Indy нет протоколов для построения VPN сетей.

Еще можно пытаться работать через порты NAT-ов и файрволов которые как правило открыты - WEB, FTP, MAIL, TELNET и т.д.

Хотя может вы просто не тот gateway указали в сетевых настройках. Тогда рекомендую использовать в сетке DHCP сервис.
Кстати DHCP сервер может использоваться для оповещения узлов о специальном пути для обхода файрвола если такой есть.


Цитата(011119xx @ Jan 21 2009, 09:31) *
Попробовал оба примера. Оба работают в пределах комнаты. Но вот связаться с удаленным компом, который стоит где-то далеко не получается. В чем может быть проблема?
Rst7
Цитата
В чем может быть проблема?


Скорее всего, UDP не ходит через NAT. Правда, если там действительно где-то NAT по пути, то будут проблемы. Рассказывайте подробнее топологию сети между двумя компами, которые Вы хотите связать, что куда подключено.

Цитата
Мешают файрволы и NAT-ы. Это такие защитные механизмы в роутерах против удаленных атак.


Ооо, с каких это пор NAT стал защитным механизмом? Это уже вторично его начали пользовать для скрытия подробностей строения внутренней сети, а изначально - это всего лишь транслятор серых айпишников в белые.
011119xx
Цитата(Rst7 @ Jan 21 2009, 11:46) *
Рассказывайте подробнее топологию сети между двумя компами, которые Вы хотите связать, что куда подключено.


О топологии сети сказать ничего не могу. Знаю что мой компьютер подключен к сети через хаб. Как подключен другой компьютер не знаю (можно узнать). Но там почему-то несколько компьютеров на одном IP сидят. Вообще-то я в сетях совсем не рублю. Просто я электронщик, а задача для программиста.
Rst7
Цитата
Но там почему-то несколько компьютеров на одном IP сидят.


Значит, таки NAT.

Только я немного не понял, Вы через большой интернет собрались компы соединять?
011119xx
Цитата(Rst7 @ Jan 21 2009, 12:25) *
Значит, таки NAT.

Только я немного не понял, Вы через большой интернет собрались компы соединять?

Да, через большой интернет, но в пределах страны.
MrYuran
Цитата(011119xx @ Jan 21 2009, 10:48) *
Да, через большой интернет, но в пределах страны.

Это надо ещё с админами тереть, чтобы гейт организовали
Rst7
Цитата
Это надо ещё с админами тереть, чтобы гейт организовали


Да проще vpn поднять. Курить тут - http://ru.wikipedia.org/wiki/Hamachi
011119xx
Итог для меня простой: не смогу я это осилить сам, ну никак.
Rst7
Цитата
Итог для меня простой: не смогу я это осилить сам, ну никак.


Странно. Вы полдела уже асилили. Теперь надо просто поднять тунель. Хамачи отлично подходит.
_Pasha
Цитата(Rst7 @ Jan 21 2009, 11:05) *
Да проще vpn поднять.


+ очень много. Самая популярная весчь.
Rst7
Цитата
+ очень много. Самая популярная весчь.


Если оба клиента за NAT'ом, то банальный VPN не поднимешь. Я не зря порекомендовал Hamachi, он с этим делом справляется.
011119xx
Хорошо. Буду смотреть хамачи.

А что дальше то делать с этой хамачи?
Rst7
Цитата
А что дальше то делать с этой хамачи?


После того, как будет установленно соединение между удаленными компами при помощи хамачи, Ваши два компа будут видеть себя так, как будто они прямым кабелем соединены. Только надо глянуть, какие будут IP-адреса у компов для этого соединения. И по ним гонять UDP-пакеты. Пользуясь тем, что Вы уже попробовали.
011119xx
Установил хамачи. Сеть нужно создавать?
Rst7
Конечно. Курите мануал, там же все написано wink.gif

Для простоты можно курнуть квикстарт

https://secure.logmein.com/products/hamachi...arted_Guide.pdf
AlexandrY
Этот хамачи чистый троян в прямом смысле. Работает через какой-то левый центральный сервер в инете.
Трафик весь будет зависеть от него как в Skype например.
Весьма опасно ставить на свой комп такие поделки.

Любой Win XP поддерживает организацию одного канала VPN.
Windows Server 2003 штатно поддерживает до 1000 VPN каналов.
Сделать фиксированный VPN человеку ничего не стоит без всяких примочек.
Но это не решение проблемы средствами Delphi.





Цитата(Rst7 @ Jan 21 2009, 14:28) *
Конечно. Курите мануал, там же все написано wink.gif

Для простоты можно курнуть квикстарт

https://secure.logmein.com/products/hamachi...arted_Guide.pdf
Rst7
Цитата
Любой Win XP поддерживает организацию одного канала VPN.
Windows Server 2003 штатно поддерживает до 1000 VPN каналов.
Сделать фиксированный VPN человеку ничего не стоит без всяких примочек.


При всем уважении, огласите способ поднятия VPN между двумя хостами, находящимися за NAT'ом?

Цитата
Работает через какой-то левый центральный сервер в инете.


Только в первый момент, для организации UDP-канала в NAT'ах. Основной траффик ходит только между хостами.
AlexandrY
Если за NAT-ами оба, то я уж свой сервер поставлю на внешнем хостинге. Впрочем я его уже демонстрировал.
В Delphi написан кстати. Он еще и SMS шлюзом работает.

А вот UDP симметрично пропускать каждый NAT не обязан.


Цитата(Rst7 @ Jan 21 2009, 15:23) *
При всем уважении, огласите способ поднятия VPN между двумя хостами, находящимися за NAT'ом?

Только в первый момент, для организации UDP-канала в NAT'ах. Основной траффик ходит только между хостами.
Rst7
Цитата
Этот хамачи чистый троян в прямом смысле.


Можете подать на них в суд. Юридический адрес указан на сайте. Посмеемся smile.gif
011119xx
А без UDP если делать? Например TCP. Не проще?
Rst7
Цитата
А без UDP если делать? Например TCP. Не проще?


Какая разница? TCP требует, чтобы один хост был сервером, другой клиентом. Тот хост, который за NAT'ом, не может быть сервером, если не приняты меры по пробросу портов.
011119xx
Цитата(Rst7 @ Jan 21 2009, 14:45) *
После того, как будет установленно соединение между удаленными компами при помощи хамачи, Ваши два компа будут видеть себя так, как будто они прямым кабелем соединены. Только надо глянуть, какие будут IP-адреса у компов для этого соединения. И по ним гонять UDP-пакеты. Пользуясь тем, что Вы уже попробовали.


Такая вещь не прокатила. Хамачи работает, а вот программки из примеров нет.
Rst7
Цитата
Хамачи работает, а вот программки из примеров нет.


Очень странно. Смотрите, на том ли интерфейсе происходит слушание пакетов этими програмками. И правильные ли IP адреса стоят в прогах - они должны соответствовать тем, которые Вам пишет Хамачи. Т.е. если Хамачи сказал Вам адрес 5.1.2.3, то его и надо ставить, а не тот адрес, который у Вас, например, у сетевой карты.
011119xx
IP адреса пишем те что дает Хамачи. Программки работают на компах в локальной сети, а вот через интернет уже никак.
Vladimir_J
Добрейшее время суток!!!


Вы чем пользуетесь для приема и отдачи данных (Client или Server)?

Если Клиентам, то интересную штуку заметил при отправки с клиентской части, по какомуту порту на известный адрес, по сниферу отправка идет совсем с другога порта, чем на который настроен клиент sad.gif (Хотя идет жесткая привязка к порту методом bind). Тоесть информация совсем идет не на то порт, который слушает клиент.

ПРи использовании Сервера - эта проблема ушла.

И есще если Ваша машина стоит за Нат-ом, то скорее Вам надо узнать внешний айпи адрес Вашей машины, которым она подключена к инету sad.gif, это можно узнать так называемым STUN-ом.



С Уважением, Владимир smile.gif
AlexandrY
Теже яйца.
Хамачи делает ровно тоже самое.
Очевидно что на дороге стоит файрвол.
Примитивные решения на UDP ему явно не помогут.
Нужен минимум промежуточный сервер-шлюз.
Либо попытаться выйти в IPv6 сети где-нить нахаляву.


Цитата(Vladimir_J @ Jan 27 2009, 06:32) *
Добрейшее время суток!!!


Вы чем пользуетесь для приема и отдачи данных (Client или Server)?

Если Клиентам, то интересную штуку заметил при отправки с клиентской части, по какомуту порту на известный адрес, по сниферу отправка идет совсем с другога порта, чем на который настроен клиент sad.gif (Хотя идет жесткая привязка к порту методом bind). Тоесть информация совсем идет не на то порт, который слушает клиент.

ПРи использовании Сервера - эта проблема ушла.

И есще если Ваша машина стоит за Нат-ом, то скорее Вам надо узнать внешний айпи адрес Вашей машины, которым она подключена к инету sad.gif, это можно узнать так называемым STUN-ом.



С Уважением, Владимир smile.gif
Rst7
Цитата
Хамачи делает ровно тоже самое.


Хамачи организовывает виртуальный интерфейс. А по нему уже сугубо пофиг, чему летать, главное - абы IP.

Надо бы файрвол (в том числе, и штатный виндозный, если используется он) исключение добавить, на предмет необходимого UDP-порта.
011119xx
Вы бы объяснили по простому что делать. А то я эти термины не понимаю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.