From 63867d0d1a21be521a0049cdc98e25c0af95f9f0 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Wed, 5 Mar 2025 14:03:18 +0800 Subject: server: reuse(SO_REUSEADDR) --- src/server.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/server.cpp') diff --git a/src/server.cpp b/src/server.cpp index c027e1a..39dd320 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -9,6 +9,10 @@ CServer::CServer(uint16_t port) if (!m_sockfd.isValid()) throw std::runtime_error("Failed to create socket"); + int reuse = 1; + if (setsockopt(m_sockfd.get(), SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse)) < 0) + std::println(stderr, "setsockopt(SO_REUSEADDR) failed"); + memset(&m_addr, 0, sizeof(m_addr)); m_addr.sin_family = AF_INET; m_addr.sin_port = htons(port); @@ -16,7 +20,6 @@ CServer::CServer(uint16_t port) m_dBind = bind(m_sockfd.get(), reinterpret_cast(&m_addr), sizeof(m_addr)); m_dListen = listen(m_sockfd.get(), 5); m_dBind < 0 || m_dListen < 0 ? throw std::runtime_error("Failed to bind or listen") : std::println("Server started on port: {}", port); - }; CServer::~CServer() { -- cgit v1.2.3