Автор Тема: Подскажите  (Прочитано 2052 раз)

Оффлайн Белочкин

  • Завсегдатай
  • ****
  • Сообщений: 679
  • Карма: +0/-0
    • Просмотр профиля
    • http://www.inoi.ru
Подскажите
« : 05 Февраля 2007, 09:48:34 »
Кто шарит, помогите найти ошибку.... что то я туплю конкретно...
procedure TForm1.Button1Click(Sender: TObject);
var
  addr : TSockAddr;
  FSocket : TSocket;
  GInitdata: TWSADATA;
  hEvent: THandle;
  fset: TFDSet;
  tv: TTimeVal;
  s, opt: integer;
begin

  WSAStartup(MakeWord(2, 0), GInitdata);
  addr.sin_family := AF_INET;
  addr.sin_addr := FindPortScaner_LookupName('172.16.15.38');
  addr.sin_port := htons(136);

  hEvent := WSACreateEvent;
 { connect(FSocket, @addr, sizeof(addr)); }
 FSocket := socket(AF_INET, SOCK_STREAM, FD_CONNECT);
 addr.sin_port := 136;
 connect(FSocket, @addr, sizeof(addr));
 Application.ProcessMessages;

 if WSAGetLastError() = WSAeinprogress then
  begin
    closesocket(FSocket);
  end;
 FD_ZERO(fset);
 FD_SET(FSocket, fset);

 tv.tv_sec := 1;
 tv.tv_usec := 0;

 s:= select(1, nil, @Fset, nil, @tv);
 Application.ProcessMessages;

 if FD_ISSET(FSocket, fset) then
  begin
    s := SIZEOF(Opt);
    opt := 1;

    getsockopt(FSocket, SOL_SOCKET, SO_ERROR, @opt, s);
    if opt = 0 then
      begin
        ListBox1.Items.Add('11111');
      end;
   end;
end;

end.
Oh, my God! They killed Kenny! You`ve bastard!!!
У меня дома нет телевизора, поэтому я ем грибы и смотрю ковёр!