Skip to content
Snippets Groups Projects
Commit e27a92d7 authored by Florian Fischer's avatar Florian Fischer
Browse files

Merge branch 'echoserver-add-reuseport' into 'master'

[EchoServer] set SO_REUSEPORT on the listen socket

See merge request !264
parents ebd3f04f b79f5470
No related branches found
No related tags found
1 merge request!264[EchoServer] set SO_REUSEPORT on the listen socket
Pipeline #69101 passed
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
#include <compare> #include <compare>
#endif #endif
const std::string HOST = "::"; static const std::string HOST = "::";
const std::string PORT = "12345"; static const std::string PORT = "12345";
static const int BACKLOG = 1024;
unsigned int computations_us = 0; static unsigned int computations_us = 0;
std::atomic<bool> quit = false; static std::atomic<bool> quit = false;
auto main(int argc, char* argv[]) -> int { auto main(int argc, char* argv[]) -> int {
std::string host = HOST; std::string host = HOST;
...@@ -48,7 +49,7 @@ auto main(int argc, char* argv[]) -> int { ...@@ -48,7 +49,7 @@ auto main(int argc, char* argv[]) -> int {
std::cout << "Echoserver listening on " << host << ":" << port << std::endl; std::cout << "Echoserver listening on " << host << ":" << port << std::endl;
Runtime runtime; Runtime runtime;
auto* listener = emper::io::tcp_listener(host, port, [](int socket) { auto serverFunc = [](int socket) {
// NOLINTNEXTLINE(modernize-avoid-c-arrays) // NOLINTNEXTLINE(modernize-avoid-c-arrays)
char buf[1024]; char buf[1024];
while (!quit.load(std::memory_order_consume)) { while (!quit.load(std::memory_order_consume)) {
...@@ -83,7 +84,10 @@ auto main(int argc, char* argv[]) -> int { ...@@ -83,7 +84,10 @@ auto main(int argc, char* argv[]) -> int {
} }
emper::io::closeAndForget(socket); emper::io::closeAndForget(socket);
}); };
auto* listener =
emper::io::tcp_listener(host, port, serverFunc, BACKLOG, {emper::io::SockOpt::ReusePort});
if (!listener) { if (!listener) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment