Главная страница
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.024 c
1-1078939007
$tranger
2004-03-10 20:16
2004.03.28
Загурузка параметров из файлов, в частности INI


7-1073573604
murdor
2004-01-08 17:53
2004.03.28
I/O с API для файлов и портов на делфи????


3-1077627458
alla l.
2004-02-24 15:57
2004.03.28
D7, б.д. DB2 какую технологию лучше выбрать: BDE, dbExpress?


7-1073780864
@ndrey
2004-01-11 03:27
2004.03.28
Люди!!!! Что мне делать ХР неопределяет дисковод!!!!!


6-1073647721
hfa
2004-01-09 14:28
2004.03.28
ClientSocket &amp; ServerSocket