Вниз
Скачать: CL | DM;

Нужна идея   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.013 c
2-1180303179
Просто_новичок
2007-05-28 01:59
2007.06.17
максимальное количество символов в string


15-1179384718
Krants
2007-05-17 10:51
2007.06.17
ActiveX и последствия


1-1176801886
Zirf
2007-04-17 13:24
2007.06.17
Построение графика


2-1180329956
-=Germe$=-
2007-05-28 09:25
2007.06.17
PChar в String


15-1179719321
Uchenik
2007-05-21 07:48
2007.06.17
Тестовый вопрос




   Наверх