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?
Neviem nechce sa mi ten link studovat ale ked nieco nabindujes tak nemusis to pred ukoncenim programu nejak release-ovat?
pred tím než se server ukončí, tak pozavírá všechny otevřené sockety.
Řešení:
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.