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

Вниз

Проверка SOCKSов   Найти похожие ветки 

 
csr ©   (2004-01-16 17:42) [0]

Помогите кто может накалякать ф-цию для определения жив СОКС или мертв! Я деляю так (при помощи winsock):

function CheckSOCKServer(host: string; port: integer): Boolean;
type
 THostAddr = array[1..4] of byte;
 PHostAddr = ^THostAddr;
var
  s      : TSocket;
  Name   : TSockAddr;
  WSData : WSAData;
  HostEnt: PHostEnt;
  ph     : PHostAddr;
  res    : integer;
begin
    result := False;

    if WSAStartup($102, WSData) = 0 then
    begin
         s := socket(AF_INET, SOCK_STREAM, 0);
         Name.sin_family := AF_INET;

         HostEnt := gethostbyname(PChar(host));
         if HostEnt <> nil then
         begin
              ph := PHostAddr(HostEnt^.h_addr_list^);
              name.sin_addr.S_addr := Cardinal(ph^);
              name.sin_port := ntohs(port);
              res := connect(s, Name, SizeOf(TSockAddr));

//               res := WSAGetLastError();
              if res = 0 then
              begin
                   result := True;
              end;
         end;
         closesocket(s);
         WSACleanup;
    end;
end;

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


 
Verg ©   (2004-01-16 19:29) [1]

Не знаю при чем тут деление на ноль и кто такой СОКС, но для начала неплохо бы накалякать

fillchar(name, sizeof(name), 0);

перед тем как заполнять поля у этого Name.


 
csr ©   (2004-01-17 09:48) [2]

Знать что такое СОКС должен каждый, кто заходит в этот форум :). А fillchar не обязательно нужен. Но я попробую, мож и в правду из-за этого глюки. Сэнкс!!


 
Anela   (2004-01-17 16:18) [3]

может надо так написать:
name.sin_family:=AF_INET;
name.sin_addr.S_addr := Cardinal(ph^);
name.sin_port := ntohs(port);


 
csr_   (2004-01-19 17:46) [4]

Удалено модератором
Примечание: Тебе же сказали RO...



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
9-1062089643
xman
2003-08-28 20:54
2004.03.28
Сделал простенькие сетевые шахматы


3-1077800435
Cranium
2004-02-26 16:00
2004.03.28
Формат баз КЛАДЕРа


3-1076332096
Pilot
2004-02-09 16:08
2004.03.28
Работа с EasyTable


14-1078036776
Alexandra
2004-02-29 09:39
2004.03.28
Не в тему, но все же нужна помощь?


1-1078469102
Alex_DM
2004-03-05 09:45
2004.03.28
Вызов модального окна. Возможно ли это?