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?
V názvu vlákna měl být "server" namísto "klient".
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.