Netwerken met C++

Ik ben een nieuwkomer in het gebruik van C++, maar heb een algemeen idee van de syntaxis en bruikbaarheid ervan. Ik wil echter leren communiceren via netwerken via C++ -programmering, maar ik kan geen tutorials voor C++ specifiek vinden.
Weet iemand goede bronnen om te leren over netwerken met C++ of waarmee ik moet beginnen?


Antwoord 1, autoriteit 100%

Gezien uw nieuwheid in C++, zou ik niet aanraden om rechtstreeks op de sockets-API’s te bouwen, tenzij u geen geschikte bibliotheek kunt vinden om te gebruiken. Boost.Asiogeeft je een enorm hoofd begin en laat u kennismaken met de abstracties op een hoger niveau die worden gebruikt bij netwerkprogrammering.

Het is gemakkelijk als je begint met het bouwen van een op sockets gebaseerd systeem om iets te krijgen dat ‘soort van’ werkt en vervolgens wekenlang bezig is met het debuggen van hoekgevallen die alleen plaatsvinden onder real-world timing en belastingomstandigheden. Het correct gebruiken van boost::asiois nauwelijks een makkie, zelfs als het ontwikkelaars beschermt tegen de complexiteit van het omgaan met raw sockets.

Als het doel is om te leren hoe u onbewerkte sockets (of een ander transportmechanisme zoals RPC) correct kunt gebruiken, gebruik dan zeker uw eigen online voorbeelden en documenten om de afzonderlijke BSD- of Winsock-API’s te begrijpen – als het doel is om een zakelijk probleem zo snel mogelijk op te lossen met code van hoge kwaliteit aan zowel de kant van de bedrijfs- als de netwerkinfrastructuur, en vervolgens een goede netwerkbibliotheek te gebruiken. In dit geval geeft uw vraag aan dat u graag wilt leren, dus het gebruik van een bibliotheek is misschien niet de beste manier om uw gestelde doel te bereiken.


Antwoord 2, autoriteit 31%

Bekijk deze handleidingen over:

En Boost.AsioKijk hiervoor een vraag over documentatie met betrekking tot Boost.Asio


Antwoord 3, autoriteit 22%

Ik weet zeker dat een stel C++-mensen die een hekel hebben aan de C-manier om dingen te doen mij hierom zullen haten, maar de klassieke benadering is om de Berkeley socket-API’s(zo genoemd omdat ze hun oorsprong hebben in BSD). Als u Windows target, worden de “grotendeels-broncompatibele, geïnspireerde-door-Unix”-API’s Winsock. Ik zou zeggen: zoek op internet naar socket-tutorialen je zult waarschijnlijk wat vinden bruikbare informatie. Met een beetje voorzichtigheid en misschien een #ifdefof twee, is het niet zo moeilijk om code te maken die werkt op Linux, BSD, Mac (die BSD-sockets bieden) en Windows (met Winsock) met behulp van wat gebruikelijk is tussen deze twee interfaces.

Voor de meer C++ geneigde, minder C-stijl mensen, of degenen die niet graag coderen tegen OS API’s, ben ik er zeker van dat er C++ bibliotheken zijn die wrappers en abstracties voor dezelfde concepten bieden. Aangezien Boost behoorlijk populair lijkt te zijn, zou ik zeggen kijk wat ze hebben.


Antwoord 4, autoriteit 14%

Bibliotheek:

Boek:

(en kijk eens naar: ACE vs Boost vs POCOBeste C/C++-netwerkbibliotheek)


Antwoord 5, autoriteit 8%

De standaardbibliotheek van C++ ondersteunt dit niet, dus je moet ofwel de systeem-API gebruiken of een abstractiebibliotheek, b.v. QT.


Antwoord 6, autoriteit 3%

C++ is een objectgeoriënteerde taal en is open, dus je kunt lenen van andere talen, met name C. maar hier zijn een paar boeken die kunnen helpen. http://wjyl.nuaa.edu.cn /kfyy/article/C++%20Network%20Programming%20Volume%201.pdfen misschien http://www.cs.wustl.edu/~schmidt/PDF/ACE-tutorial.pdfonder vele. er zijn ook anderen daarbuiten.


Antwoord 7

Misschien Boost.Asioof deze (Unicomm)op basis daarvan is geschikt voor u

Other episodes