Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem TCP klient, linux, c++

Dobrý den,
v C++ jsem si napsal jednoduchý server (na linuxu).
Vycházel jsem z informací popsaných zde: http://www.builder.cz/rubriky/c/c--/tcp-server-v-l inuxu-156219cz

Přenos dat mezi serverem a klientem (taky napsaný v c++) funguje bez problémů.
Ale při testování jsem narazil na zajímavou chybu.
Zapnu server a připojím se na něj pomocí klienta, klient pošle data, server je zpracuje a pošle odpověď.
Potom server ukončím a když se ho pokusím znovu rychle zapnou, vypíše mi chybu při pojmenování socketu, tedy funkce bind.
Stačí počkat pár vteřin a další pokus zapnutí serveru se již podaří.

Je to normální chování, nebo by měl server naskočit hned?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Neviem nechce sa mi ten link studovat ale ked nieco nabindujes tak nemusis to pred ukoncenim program… nový
MM.. 27.03.2013 14:43
MM..
pred tím než se server ukončí, tak pozavírá všechny otevřené sockety. nový
Luk 27.03.2013 14:53
Luk
Řešení: static const int flag = true; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag))… nový
Luk 27.03.2013 19:09
Luk
ok :) Ale preistotu si aj skontroluj ze ci ked zatvaras sockety davas tym funkciam spravne pointre,… poslední
MM.. 27.03.2013 19:40
MM..

ok :) Ale preistotu si aj skontroluj ze ci ked zatvaras sockety davas tym funkciam spravne pointre, a nie nejake haluze v parametroch, potom by to samozrejme nic nezavrelo. Ale ako som pisal neviem ci tie 3sekundy spozdenie su normalne u linuxu mozno to je aj normalne aj ked ich korektne zavres, neviem zhlavy.

Zpět do poradny Odpovědět na původní otázku Nahoru