Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WebServices проверка соединения, Как можно проверить соединение 
:(
    Опции темы
Rodman
Дата 2.8.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Дароф. Подскажите как можно проверить соединение с сервером... я например вызываю функцию с сервера... но если нет соединения то вылетает ошибка.. а как мне выжать свое предупреждение???

Спасибо
PM MAIL WWW Skype GTalk YIM MSN   Вверх
drkot
Дата 2.8.2006, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 0
Всего: 8



как ты это делаеш? в примерах плз.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
denks
Дата 2.8.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 16.4.2006

Репутация: нет
Всего: нет



Пропингуй сервер 
Код

unit pinger;

interface

uses windows, winsock;

function ping(host:string):integer;

implementation

type    
  ip_option_information = packed record
    Ttl: byte;
    Tos: byte;
    Flags: byte;
    OptionsSize: byte;
    OptionsData: Pointer;
  end;    

  icmp_echo_reply = packed record    
    Address: u_long;
    Status: u_long;
    RTTime: u_long;
    DataSize: u_short;
    Reserved: u_short;
    Data: Pointer;
    Options: ip_option_information;
  end;    

  PIPINFO = ^ip_option_information;    
  PVOID = Pointer;    

function IcmpCreateFile() : THandle; stdcall; external 'ICMP.DLL' name 'IcmpCreateFile';    
function IcmpCloseHandle(IcmpHandle : THandle): BOOL; stdcall; external 'ICMP.DLL'  name 'IcmpCloseHandle';    
function IcmpSendEcho(IcmpHandle: THandle; DestAddress: u_long; RequestData: PVOID;
                      RequestSize: Word; RequestOptns: PIPINFO;    ReplyBuffer: PVOID;
                      ReplySize: DWORD; Timeout: DWORD) : DWORD; stdcall; external 'ICMP.DLL' name 'IcmpSendEcho';

function ping(host:string):integer;
var    
  hIP : THandle;    
  pingBuffer : array [0..31] of Char;    
  pIpe : ^icmp_echo_reply;    
  pHostEn : PHostEnt;    
  wVersionRequested : WORD;    
  lwsaData : WSAData;    
  error : DWORD;    
  destAddress : In_Addr;    
begin
  result:=-1;
  hIP := IcmpCreateFile(); 
  GetMem(pIpe, sizeof(icmp_echo_reply) + sizeof(pingBuffer));
  pIpe.Data := @pingBuffer;    
  pIpe.DataSize := sizeof(pingBuffer);    
  wVersionRequested := MakeWord(1,1);    
  error := WSAStartup(wVersionRequested,lwsaData);    
  if (error <> 0) then exit;
  pHostEn := gethostbyname(PChar(host));
  error := GetLastError();
  if (error <> 0) then Exit;
  destAddress := PInAddr(pHostEn^.h_addr_list^)^;
  IcmpSendEcho(hIP,destAddress.S_addr,@pingBuffer,sizeof(pingBuffer),nil,pIpe,sizeof(icmp_echo_reply)+sizeof(pingBuffer),5000);
  error := GetLastError();    
  if (error <> 0) then Exit;
  result:=pIpe.RTTime;
  IcmpCloseHandle(hIP);    
  WSACleanup();    
  FreeMem(pIpe);    
end;

end.

PM MAIL   Вверх
Snowy
Дата 3.8.2006, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Поставь вызов в try .. except
PM MAIL   Вверх
Rodman
Дата 3.8.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



ОК... Спасибо... Оказывается все до гениальности просто - ПИНГ...


СПАСИБО
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Rodman
Дата 31.10.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Все таки мне необходимо с try .. except  сделать...
Snowy, можешь пример кинуть... 

Что то у меня не выходит самостоятельно...

Секнс...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 31.10.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Примеры применения расписаны в справке дельфи.
Если интересует конкретное применение к какому-то коду, то нужен код smile
PM MAIL   Вверх
Rodman
Дата 31.10.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Ну у меня есть функция IsConnect...

Сервер работает, то она возвращает строку 'Connect'... а если сервер я отключаю, то вылетает ошибка в делфях при запросе на эту функцию...

Я хотел пример типа
Код

try
  ShowMessage(ws.IsConnect());//ws переменная сервера, если сервер включен то все нормально, а что делать если нет...
except
    ...;// не пойму что написать ???



подскажи как обойти ошибку с вылетом из делфи... и если сервер не подключен просто выводить окошко 'подключения нет'


PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 31.10.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код

try
  if ws.IsConnect then
    ShowMessage('Есть контакт');
except
  ShowMessage('Не есть контакт');
end;
В дельфи выпрыгивать всё равно будет.
Просто нажми ещё раз F9 для продолжения.
Без дельфи будет работать нормально.
PM MAIL   Вверх
Rodman
Дата 31.10.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Это наверно важно (ws - веб-сервис)...

Сделал как ты предложил - выдает

Unable to load WSDL File/Location 'http://..../WSDL/IIS'...

выдает и с делфями и без оных...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Snowy
Дата 31.10.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



В таком случае это не ошибка, а внутреннее сообщение.
Значит нужно по другому проверять.
PM MAIL   Вверх
Rodman
Дата 31.10.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Как не подскажете??? smile 
PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.