chyba pri opetovnem bind u socketu
David Rohleder
davro na ics.muni.cz
Pondělí Říjen 22 18:07:41 CEST 2001
radek.cervinka na centrum.cz (Radek Cervinka) writes:
> >> handle:=socket(PF_INET, SOCK_STREAM , IPPROTO_TCP);
> >> listen(Handle,5);
> >> with FAddr do
> >> begin
> >> sin_family := AF_INET;
> >> sin_port := htons(Port);
> >> sin_addr.s_addr := INADDR_ANY;
> >> end;
> >> bind(Handle, FAddr, SizeOf(FAddr));
> >> setsockopt sem nevolal (musim? a kdyz tak jak)
> >
> >Parametr SO_REUSEADDR je pravdepodobne to, co Vas zajima.
> >
> Ale tam by uz nikdo nemel byt - muj program skoncil a tudiz by mel byt
> ten port volny :(
> Zavirani je takto
> Libc.shutdown(Handle,2);
> close(Handle);
Ono totiz, kdyz se socket zavre, tak se musi spravne dokoncit TCP
handshake pro uzavirani TCP spojeni, takze v jadernych tabulkach musi
byt tento socket jeste nejakou dobu otevreny.
--
-------------------------------------------------------------------------
David Rohleder davro na ics.muni.cz
Institute of Computer Science, Masaryk University
Brno, Czech Republic
-------------------------------------------------------------------------
Další informace o konferenci Linux