Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.19;
Скачать: CL | DM;

Вниз

Как узнать активен ли удаленный сервер?   Найти похожие ветки 

 
Andrewtitoff ©   (2008-03-04 12:59) [0]

Понятно что его нужно спросить об этом, собственно вопрос в том и состоит как это сделать, т.к. если я просто шлю какой либо текст - то соответственно если удаленный сервер слушает - то он мне нормально отвечает, а вот если в ответ тишина - то прога наглухо виснет...

Посылаю текст таким образом :

procedure TMyChat.SendCommand(s:string);
begin
TcpClient1.Active := True;
 try
   if TcpClient1.Connect then
     begin
     TcpClient1.Sendln(s);
     Edit.Clear;
     end;
 finally
   TcpClient1.Disconnect;
 end;
end;


 
Сергей М. ©   (2008-03-04 13:05) [1]


> прога наглухо виснет


Не "наглухо", а на время дифолтного таймаута ожидания.


 
Сергей М. ©   (2008-03-04 13:07) [2]


> TcpClient1.Active := True;


> TcpClient1.Connect


Два раза зупускать коннект - это что, для пущей надежности что ли ?)


 
Andrewtitoff ©   (2008-03-04 13:18) [3]

А сколько это время дифолтного таймаута ожидания уже 5 мин висит... =(((
Можно сделать чего нить на подобии Ping-а тока для используемого мною порта?

Ой, ну да типа того =)))
А есть какя нибудь разница или это равнозначные команды?


 
Reindeer Moss Eater ©   (2008-03-04 13:25) [4]

дефолтный таймаут - инфинити


 
Сергей М. ©   (2008-03-04 13:26) [5]


> уже 5 мин висит


А вот это уже подозрительно.
Не похоже это на "проблему" коннекта к отсутствующему хосту.


> Можно сделать чего нить на подобии Ping-а тока для используемого
> мною порта?


Нет, нельзя.
ping не имеет отношения к портам.


> есть какя нибудь разница или это равнозначные команды?


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


 
Сергей М. ©   (2008-03-04 13:39) [6]


> Reindeer Moss Eater ©   (04.03.08 13:25) [4]


Это ж, наверно, от конкретного сокет-провайдера зависит ..


 
Andrewtitoff ©   (2008-03-04 13:40) [7]

2 Reindeer Moss Eater ©
А как его поменять?

2 Сергей М. ©
>Не похоже это на "проблему" коннекта к отсутствующему хосту.
А что это может быть?


 
Сергей М. ©   (2008-03-04 13:47) [8]


> А как его поменять?


А его и не надо менять.

Логику свою надо менять, а не таймаут.

Возьми любой сторонний тестер, к примеру, http://www.networkcenter.info/ и проверь с пом. него доступность того же самого неактивного порта, в который ты стучишь и при этом висишь до второго пришествия. Тестер будет ждать не более полминуты, убедись сам.


 
Andrewtitoff ©   (2008-03-04 13:56) [9]

Ясно, так а в чем тогда может быть проблема?


 
Andrewtitoff ©   (2008-03-04 13:56) [10]

Ясно, так а в чем тогда может быть проблема?


 
Сергей М. ©   (2008-03-04 14:06) [11]


> в чем тогда может быть проблема?


Что ты считаешь "проблемой" ?


 
Andrewtitoff ©   (2008-03-04 14:07) [12]

То что программа виснет наглухо, а не на небольшой таймаут...


 
DiamondShark ©   (2008-03-04 14:14) [13]

Дык, известно в чём проблема: программа неправильно написана.
Ты ещё ни слова не написал о том, как ты принимаешь ответ.


 
Andrewtitoff ©   (2008-03-04 14:26) [14]

2 DiamondShark
Так я же говорю что она виснет когда нет ответа.., когда ответ есть - все в норме...
Меня так же интересует случай когда на удаленном компе она вообще не запущенна, а она как раз и виснет в этом случае....


 
Сергей М. ©   (2008-03-04 14:37) [15]

А какая для юзера разница, наглухо или не наглухо ?
Все равно нервиничать будет и материть разработчика)

Логику надо менять, а не "проблемы" выискивать.
Либо переходи на неблок.режим либо делай коннект в доп.потоке


 
Andrewtitoff ©   (2008-03-04 14:53) [16]

2 Сергей М.

Ну в принципе я не расчитывал на то что это прогой будет пользоваться какой либо пользователь кроме меня, так что нервничать не будет...  =)))

>Либо переходи на неблок.режим
А на что это вообще влияет?, это просто в свойствах клиента и сервера поменять?, я просто с этим не разбирался и поэтому смутно представляю что это и зачем...  =(((

>либо делай коннект в доп.потоке
А енто я тож не знаю как правильно сделать, боюсь ошибок много будет, ты же сам в свое время сказал что мне рано еще с этим разбираться... =)))


 
Reindeer Moss Eater ©   (2008-03-04 15:12) [17]

Ну в принципе я не расчитывал на то что это прогой будет пользоваться какой либо пользователь кроме меня

Сетевой чат с самим собой?
:)


 
Сергей М. ©   (2008-03-04 15:14) [18]


> А на что это вообще влияет?


Как раз на то и влияет - "висеть" не будет твоя программа.


> это просто в свойствах клиента и сервера поменять?


Сервер не трожь - не о нем пока речь.


> смутно представляю что это и зачем


Вот как раз и повод есть разобраться.
Погугли по теме "сокеты блокирующий неблокирующий режим"


 
Reindeer Moss Eater ©   (2008-03-04 15:24) [19]

Возьми TidTCPClient. Там есть и таймаут и ексепшен в случае если целевой хост не слушает.


 
Andrewtitoff ©   (2008-03-04 15:30) [20]

2 Reindeer Moss Eater

А кто тебе вообще сказал что это чат?, можно конечно использовать и ка чат, но меня это функция меньше всего интересует...

2 Сергей М.
Пасибо, тока теперь буквально через пару секунд вываливается с ошибкой "access violation at 0x7c90eddc: write of address 0x00040fbl"....  =(((


 
Reindeer Moss Eater ©   (2008-03-04 15:33) [21]

Мне никто не сказал, я твой код почитал


 
Сергей М. ©   (2008-03-04 15:40) [22]


> Reindeer Moss Eater ©   (04.03.08 15:24) [19]
>
> Возьми TidTCPClient


Если мне не изменяет память, автор некоторое время назад чуть ли не из штанов выпрыгмвал, пытаясь аргументировать выбор им именно TCPClient/Server)


> Andrewtitoff ©   (04.03.08 15:30) [20]



> вываливается с ошибкой


У меня не "вываливается". В чем я провинился ?) Что делаю не так ?)


 
grisme   (2008-03-06 17:19) [23]


> Reindeer Moss Eater ©   (04.03.08 15:33) [21]


палицо %) щас будут отмазки



Страницы: 1 вся ветка

Текущий архив: 2009.07.19;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.009 c
6-1204624742
Andrewtitoff
2008-03-04 12:59
2009.07.19
Как узнать активен ли удаленный сервер?


15-1242723217
lincal
2009-05-19 12:53
2009.07.19
InstallShield Installation Information


2-1243330944
fs
2009-05-26 13:42
2009.07.19
access violation при закрытии приложения (DLL)


3-1224016012
Раиса
2008-10-15 00:26
2009.07.19
Create User выдает ошибку...


3-1223979385
lod
2008-10-14 14:16
2009.07.19
cxGrid