Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.39 c
15-1178974275
lzma
2007-05-12 16:51
2007.06.17
Ketmar мужык!


2-1180072948
ыавпып
2007-05-25 10:02
2007.06.17
SQL-запросы


15-1179861925
abajun
2007-05-22 23:25
2007.06.17
фантастический рассказ


9-1153360589
RobinBad
2006-07-20 05:56
2007.06.17
Установка Glscene


15-1179910817
Кевларвестов Семен
2007-05-23 13:00
2007.06.17
Почему-то не устанавливается BDS 2006





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский