C++ soketové programování

Johny

C++ soketové programování
« kdy: 13. 02. 2013, 10:38:55 »
Zdravím :)
Dotaz novopečeného.
Jak je to s knihovnami pro C++?  Knihovny jako iostream, cstring atd... jsou jasně knihovnami C++.

Ale chtěl bych se vrhnout na soketové programování a s tím spojené multithreadové aplikace.
Hlavní otázka zní: Existuje čistě knihovna v C++ pro soketové a multithreadové programování?
Používá C++ knihovny C s tím rozdílem, že sestavené funkce se můžou např. zapouzdřit do objektů?




kamil burýsek

Re:C++ soketové programování
« Odpověď #1 kdy: 13. 02. 2013, 10:46:14 »
boost

pajon

Re:C++ soketové programování
« Odpověď #2 kdy: 13. 02. 2013, 10:49:30 »
skús sa pozrieť na libevent

Martin Jakl

Re:C++ soketové programování
« Odpověď #3 kdy: 13. 02. 2013, 10:54:18 »
Nejlepší je použít C funkce a zabalit si je dle potřeby. Jedná se jenom o pár funkcí. A vlastní síťová komunikace v programu nezabírá víc než 200 řádek.

Johny

Re:C++ soketové programování
« Odpověď #4 kdy: 13. 02. 2013, 11:12:29 »
boost - bych použil pokud bych moc nepotřeboval nebo nechtěl ztrácet čas učením se.
nic méně, taky dobrý vědět...

Takže Martin odpověděl.
Jde to ... :o)


smis

Re:C++ soketové programování
« Odpověď #5 kdy: 13. 02. 2013, 18:29:43 »
Pred pár dňami som našiel tento návod pre socketové programovanie v C/C++.

Zatial som to neprečítal celé (iba cca 20 strán, dokopy to má okolo 100) ale vyzerá to dosť dobre.
Je to písane jednoduchou angličtinou a je k dispozícii viac webových a pdf formátov.

http://beej.us/guide/bgnet/

Re:C++ soketové programování
« Odpověď #6 kdy: 13. 02. 2013, 18:40:42 »
Tak buď použít rovnou BSD sokety a std::thread nebo Boost::Asio. Nicméně Boost::Asio je (pokud si začátečník) docela složité na pochopení. Zejména u ASIO je důležitý pochopit rozdíl mezi Reactor a Proactor design pattern. ASIO umí rozhodit práci mezi thready automaticky, ale nevýhodou může být inverze řízení.