How to write a highly scalable Windows Socket server (BBQ library is the answer)

All developers, sit up!

What we’re bringing on Safetica blog today will be highly interesting for all the fellow coders out there. Our developer Benny (Marek Strihavka) has put together a sample code showing you how to write a highly scalable Windows Socket server in C++. If you feel like you could make use of it, feel free to use the code in your own projects.

Here’s from Benny:

I am excited to share with you an interesting code that I’ve come up with. Have you ever thought about how to write a scalable Windows Socket server that can handle hundreds, or even thousands of connections at once? You can use this open and free IPC library for inspiration.

In Safetica, we have eventually decided not to use this library in our code since sockets have their downsides (e.g. can be blocked by a firewall) and there are more efficient ways to communicate within one computer. However, the code has made it to the final round of our performance tests.

The library is called “barbeque” (BBQ – Broadcast Burst Queue) and it uses overlapped I/O operations, Sockets 2 APIs, I/O completion ports, threadpool, it’s all written in plain C++ (non-object inner code with outer object interface, designed for MS Visual Studio 2010 and higher). We’ve included also some unit tests with the code samples so that you can play around with the library before you decide to adopt it.

See and download the full code here: http://www.codeproject.com/Articles/1105171/Broadcast-Burst-Queue


Safetica_Employee_Benny

Written by Marek „Benny“ Strihavka, Developer @Safetica Technologies

Low-level coder grown on x86 assembler. System hacker in heart, spending most of his time exploring dead end paths 🙂

 

email

Leave a Comment

Your email address will not be published.