Networking is often a core requirement for modern applications, but the standard C++ library doesn't yet include any networking support. The Boost libraries have had networking components in the ASIO library, but it looks complicated and filled with details. What if we aren't experts in networking but we need to have networking to support a feature in our application, what options are available to us?
POCO began as a library of POrtable COmponents, so it covers more than just networking. The networking portion of POCO includes:
stream, datagram, multicast, server, Unix domain and raw sockets
multithreaded TCP server framework
reactor server framework
HTTP(S) client and server framework
HTTP Basic and Digest authentication
NTLM authentication
JSON Web Token support
C++ server page compiler
FTP client
clients for the email protocols SMTP and POP3
URI and UUID handling
HTML forms processing
HTML template compiler
MIME multipart messages
SSL/TLS support based on OpenSSL
WebSocket client and server
This month, Richard Thomson will give us an introduction to POCO networking components centered around writing a network client to talk to an NNTP server. We'll look at the main abstractions provided by POCO and how those are used to build a network client to an NNTP server. NNTP (Network News Transfer Protocol) is a stateful network protocol for reading articles from newsgroups, generally referred to as "usenet". Unlike single hosted forums or mailing lists, usenet is a distributed system with no central authority, providing redundancy and resiliency from single point failures (like the host of your favorite forum suddenly deciding they don't want to pay server costs anymore and deleting the whole thing).
Meetup: https://www.meetup.com/Utah-Cpp-Progr...
Past topics: https://utahcpp.wordpress.com/past-me...
Future topics: https://utahcpp.wordpress.com/future-...