Вниз
Скачать: 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 вся ветка

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



Память: 0.45 MB
Время: 0.031 c
1-1079038884
Lonely_Wolf
2004-03-12 00:01
2004.03.28
RichEdit


11-1051970585
Olgerd
2003-05-03 18:03
2004.03.28
Замена системных модулей для Delphi 3


3-1077703542
VolanD2002
2004-02-25 13:05
2004.03.28
DBGrid


14-1078384324
Maxx
2004-03-04 10:12
2004.03.28
Описание DBChart


1-1078821828
Dima_________
2004-03-09 11:43
2004.03.28
Работа с Word




   Наверх