Форум: "Начинающим";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
ВнизНужна идея Найти похожие ветки
← →
Novice (2007-05-23 11:53) [0]Мне необходимо подключаться RAdmin"ом к нескольким компьютерам вне локалки. Проблема в том, что они не имеют стат. ip. Соответственно, перед подключением надо этот адрес узнать, причем без участия пользователей этих машин. Со своим микроопытом в программировании я не смог придумать ничего лучше использования сокета: у них клиент, который по таймеру пытается соединиться с сервером, у меня - сервер, который слушает порт и при подключении определяет ip клиента. Вроде бы это работает, но возникла проблема на клиентах: если сервер не отвечает (нет связи, сервер не запущен и т.д.), то сокет ломится по порту, на единицу больше предыдущего, т.е., сначала 7000, потом 7001, 7002 и т.д. И в какой-то момент клиентский компьютер вообще не может выйти в интернет. Наверняка есть более простой и надежный способ получения ip, но мне он в голову не идет.
← →
Сергей М. © (2007-05-23 12:12) [1]
> в какой-то момент клиентский компьютер вообще не может выйти
> в интернет
Значит ошибка в программе.
> Наверняка есть более простой и надежный способ получения
> ip
см. dynamic DNS
http://www.google.ru/search?q=dynamic+DNS&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a
← →
clickmaker © (2007-05-23 12:14) [2]gethostbyname() не подойдет?
И, кстати, РАдмин разве не может по имени подключиться?
← →
Reindeer Moss Eater © (2007-05-23 12:22) [3]gethostbyname() не подойдет?
У меня имя компа "xxx". Отрезолвь попробуй адрес.
PS все открыто
:)
← →
Novice (2007-05-23 12:25) [4]Если есть ошибка, то я не знаю, в чем она заключается. А по имени через интернет не подключишься, DNS"а нет. Сейчас сбегаю по ссылке, почитаю.
← →
clickmaker © (2007-05-23 12:25) [5]
> PS все открыто
а вот это зря :)
← →
Сергей М. © (2007-05-23 12:27) [6]
> Novice (23.05.07 11:53)
Но самая лучшая, imho, идея - все заинтересованные хосты должны быть клиентами VPN.
Твой хост, если у тебя статический глоб.адрес, вполне может выступить в роли VPN-сервера.
← →
Сергей М. © (2007-05-23 12:28) [7]
> Если есть ошибка, то я не знаю, в чем она заключается
На то и существует отладчик, чтобы искать и исправлять ошибки.
← →
Novice (2007-05-23 13:13) [8]
> На то и существует отладчик, чтобы искать и исправлять ошибки.
Как мне может помочь отладчик, если клиенты в других городах? На своей машине/локалке такой эффект повторить не удается.
А вот в сторону VPN надо посмотреть (у меня статика).
← →
Сергей М. © (2007-05-23 13:16) [9]
> клиентский компьютер вообще не может выйти в интернет
Что, прямо так и говорит, мол, "не могу выйти в интернет" ?
← →
Novice (2007-05-23 13:30) [10]
> Что, прямо так и говорит, мол, "не могу выйти в интернет"
> ?
Ну, если бы умел говорить, то ,вероятно, так и сказал бы.
1. Невозможно открыть какую-либо страницу в эксплорере;
2. Не работает pop, smtp
3. Не работает пинг.
Достаточно-ли подробно я раскрыл фразу "клиентский компьютер вообще не может выйти в интернет"?
← →
Сергей М. © (2007-05-23 13:37) [11]
> Достаточно-ли подробно я раскрыл фразу "клиентский компьютер
> вообще не может выйти в интернет"?
Увы, интрига закручена еще хлеще)
> 1. Невозможно открыть какую-либо страницу в эксплорере
От детальных объяснений эксплорер, конечно же, отказывается)
> 2. Не работает pop, smtp
Они (протоколы !!!), видимо, тоже научились говорить фразу "не работаю")
> 3. Не работает пинг
Боюсь даже предположить - это приложение вообще молча уходит в Нирвану)
Ну что ж, попробую подключить телепатор - твой клиент "тычется" в порты средствами TClientSocket в режиме ctNonBlocking.
Тепло ?)
← →
Novice (2007-05-23 13:40) [12]Горячо
← →
Сергей М. © (2007-05-23 13:41) [13]
> Novice (23.05.07 13:40) [12]
Ну тады не обожгись - ошибка у тебя в обработчике OnError.
← →
umbra © (2007-05-23 13:41) [14]
> клиентский компьютер вообще не может выйти в интернет
да это, наверное, файервол впадает в панику и блокирует все подключения
← →
Novice (2007-05-23 13:43) [15]&
1. Невозможно открыть страницу
2. Невозможно соединиться с сервером
3. Превышен интервал ожидания для запроса
← →
Novice (2007-05-23 13:47) [16]
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode := 0;
end;
Файер - скорее нет, т.к. один из клиентов - Вин98, а сторонних программ этого типа там нет.
← →
Сергей М. © (2007-05-23 13:57) [17]
> Novice (23.05.07 13:47) [16]
А должно было быть так:procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
... что угодно ..
//если событие возникло в ходе попытки коннекта, то
Socket.Close; // эта строчка обязательна !
... что угодно ..
end;
← →
Novice (2007-05-23 14:20) [18]Пошел пробовать...
← →
Сергей М. © (2007-05-23 14:22) [19]
> Novice (23.05.07 14:20) [18]
Да не пробовать надо, а углубиться в исходники)
← →
SlymRO © (2007-05-23 14:50) [20]DDNS для этого придумали
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c