Portál AbcLinuxu, 9. května 2025 03:03
Řešení dotazu:
bind
je třeba soketu nastavit příznak SO_REUSEADDR
. Tedy něco takového:
static const int flag = true; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag));Více viz
man 7 socket
netstat
na tabulku spojení. Obvykle tam i po ukončení spojení ještě spojení zůstane se stavem "TIME_WAIT" nějakou dobu, než timer vyprší. Očekával bych, že existence buď přímo těchto ještě zcela nesmazaných spojení nebo jiného podobného timeru klasifikuje soket jako obsazený i nějakou dobu po ukončení programu. Funkce setsockopt nastavuje volby soketu a konkrétně nastaví jeho reentrantnost.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.