Главная страница
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.042 c
1-1078499619
raul
2004-03-05 18:13
2004.03.28
создание контекстной справки


14-1077797424
Иван Бездомный
2004-02-26 15:10
2004.03.28
Забавно


1-1078949604
White
2004-03-10 23:13
2004.03.28
Преобразование типов! (Вопрос второй)


1-1078410219
a.t.k.
2004-03-04 17:23
2004.03.28
Встороить ComboBox в ячейку StringGrid


7-1073988533
LexusU
2004-01-13 13:08
2004.03.28
Чтение запись регистров CMOS в WinXP/Win2K