Funkcja sprawdzajaca stan socektu ?

0

Dziend dobry wszystkim mam maly problemik z ustaleniem w jkaim stanie znajduje sie aktualnie socket.
Mianowicie zalezy mi na sprawdzeniu (znajac numer socketu) jego aktualnego stanu czyli czy nasluchuje "listen" czy czeka na zamkniecie "time_wait" itp.
Probowalem wykorzystac funkcje getsockopt http://msdn2.microsoft.com/en-us/library/ms738544.aspx
ale bezsuktecznie zawsze wyrzuca mi blad WSANOTINITIALISED [???]
Macie moze jakies pomysly jak tego dokonac ?

0

W linku, który podałeś, jest napisane:

A successful WSAStartup call must occur before using this function.

Hmmm, może to Ci choć trochę pomoże.

0

Przykladowo probuje zablokowac mozliwsc odbioru i wysylania poprzez socket czegokolwiek funkcja shutdown
http://msdn2.microsoft.com/en-us/library/ms740481.aspx
niestety nadal nie dziala problem sie troszke zmianil po dodaniu WSAStartup teraz blad brzmi
WSAENOTSOCK czyli Socket operation on nonsocket a wiem za numer socketu jet na pewno poprawny :-/ [glowa]

procedure TForm1.Button1Click(Sender: TObject);
var
s     : integer;
d     :WSADATA;

begin
s := StrToInt(edit1.Text);
if (WSAStartup(2,d) = 0) then
  memo1.Lines.Add('ok');

if (shutdown(s,SD_BOTH)= SOCKET_ERROR) then
  Memo1.Lines.Add(IntToStr(WSAGetLastError))
else
memo1.Lines.Add('ok');

end; 
0

Ok mniejwiecej doszedlem dlaczego funkcja shutdown czy closesocket nie dzialaja poniewaz sa to polaczenia UDP [!!!] I teraz mam problem poniewaz nie wiem jak badz jaka funkcja sprawdzic czy dany socket ktory ma polaczenie UDP jeszcze jest aktywny czy juz moze sie rozlaczyl :-(

1 użytkowników online, w tym zalogowanych: 0, gości: 1