I'm coming from Java and there we use the EPoll selector implementation that comes with the JDK for non-blocking / asynchronous networking TCP and UDP development. Therefore you don't have to make choices.

But when it comes to C++ there are dozens of options to choose from according to this answer: https://stackoverflow.com/questions/118945/best-c-c-network-library

I don't have experience with C++ so I don't know. Which one should I pick for low-latency, asynchronous, non-blocking, real-time, selector style network programming? Does C++ even have a standard non-blocking network library or are they all external / independent?

  • $\begingroup$ Hello, if any of these answers fulfill what you were looking for please mark it as accepted. If not, edit the question to allows us to answer the question. $\endgroup$ – Theodore Aug 17 '18 at 3:50

networking will be available as standard only in c++17, currently boost is an option if you want to abstract the operational system features ( epool, kqueue, io completion ), low latency or realtime try dpdk to bypass operational system kernel.

  • $\begingroup$ Thanks! But c++17 is coming only in 2017 the earliest, right? Can you explain the difference between Boost.Asio and Asio? $\endgroup$ – Joe Patrick Mar 30 '16 at 13:05
  • $\begingroup$ its the same thing, they explain here think-async IMO the main difference is the possibility to use the library without need of boost, some developers doesnt like it :D $\endgroup$ – Clebson Derivan Mar 30 '16 at 20:04

Take a look on POCO. This is really good library.

Another link I consider you should to check is ACE. You may find it a bit outdated and hard to understand from first try but concept is very close to MINA and NIO.

  • $\begingroup$ forgot to mention those, thanks for remind ;) $\endgroup$ – Clebson Derivan Sep 13 '16 at 18:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.