Кто шарит, помогите найти ошибку.... что то я туплю конкретно...
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.