Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2010, 11:27   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию Client-Sever (на сокетах) через интернет

Столкнулся с такой проблемой, у меня дома стоит комп, на котором статический ИП адрес, я написал программку Client-Server на сокетах, мой друг через интернет (у него тоже статический ИП) запускает клиента, а я сервер, соответственно связь есть, и клиент и сервер общаются между собой. Но когда я запускаю на работе клиента (копм выходит в интернет через прокси), то выскакивает ошибка (Asinchronous socket error 10054), я понимаю что дело в прокси, но как это дело обойти????
P.S.
С работы домашний комп отлично пингуется и порт по которому общаются клиент и сервер открыт(проверял через интернет)
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.09.2010, 11:37   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

потому-что прокси на работе обратный запрос с домашней машины не знает какой машине передавать внутрь, для этого нужен проброс портов на внутреннюю сеть, дабы внешний прокси был прозрачен ...поскольку это реализуемо технически, но геморно с точки зрения "договорится", то вам нужен один общий сервер в нете, через который и будет идти обмен (по принципу аськи или хамачи).
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.09.2010, 11:44   #3
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

так у меня моя домашняя машина и есть сервер, она имеет статический ИП и открытый порт, по которому общаются клиент и сервер, или я что-то не понял в вашем посте.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.09.2010, 11:57   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

порт там открыт, а порт на работе внутри нет (внешние порты на машине с прокси могут быть открыты, а вот внутренние - как правило открывают один для инета) ...проверить просто, пропингуй с локальной машины на работе через утилиту tcping (не путать с icmp пингом)/

Код:
Usage: tcping [-t] [-d] [-i interval] [-n times] server-address [server-port]

         -t   : ping continuously until stopped via control-c
         -n 5 : for instance, send 5 pings
         -i 5 : for instance, ping every 5 seconds
         -w 100 : for instance, wait 100 milliseconds for a response
         -d   : include date and time on each line
         -b 1 : enable beeps (1 for on-down, 2 for on-up,
                              3 for on-change, 4 for always)
         -v   : print version and exit


...вам нужно реализовать работу через прокси в своем чате по принципу аськи как уже указывал ...если пользуешь indy idhttp, то там можно задать параметры прокси (хоста и открытого внутреннего порта) и в наборе компонентов ics тоже можно задать.

Добавлено
не обратил внимание сразу на слово "сокеты" ...тогда формируем правильно структуру UrlMkSetSessionOption и INTERNET_OPTION_PROXY.
Вложения
Тип файла: zip tcping.zip (52.9 Кб, 17 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 23.09.2010 в 12:33.
raxp вне форума Ответить с цитированием
Старый 23.09.2010, 12:27   #5
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Вот пинг с работы моего компа как видно порт не открыт, хотя в инете проверяю - порт открыт.
123.jpg
как сделать, чтоб работало в инете через прокси? Это надо Indy использовать, может пальцем покажите где можно почитать по этому поводу.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 23.09.2010, 13:09   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
хотя в инете проверяю - порт открыт
уф... внешние порты и внутренние не одно и то же ...в нете вы проверяете с чужого сервера ...как сделать уже написал и для инди >>> тырк
Код:
IdHTTP1.ProxyParams.ProxyPort:=
IdHTTP1.ProxyParams.ProxyServer:=
IdHTTP.Host := 
IdHTTP.Port
для сокетов подробности в msdn, смотрите UrlMkSetSessionOption и INTERNET_OPTION_PROXY.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 23.09.2010 в 13:13.
raxp вне форума Ответить с цитированием
Старый 23.09.2010, 13:27   #7
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

спасибо буду разбираться
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка типизированных данных через Client/ServerSocket prod87 Работа с сетью в Delphi 2 10.07.2010 20:47
Соединение через интернет (C++ Builder) badfilin C++ Builder 1 21.03.2010 21:32
Удалённое администрирование через интернет class-m Фриланс 2 23.11.2009 16:14
Связь через интернет Артэс Общие вопросы C/C++ 4 04.07.2008 21:54
Соединение с БД через Интернет Kate Работа с сетью в Delphi 1 08.06.2007 08:49