summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-03-05 14:03:18 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-03-05 17:33:49 +0800
commit63867d0d1a21be521a0049cdc98e25c0af95f9f0 (patch)
tree4ad743d0a36c4e6888a185ced5dedaed61bb3c62 /src/server.cpp
parenta2c9584961fc6e0406e25ad597d2f5cfb0b3007b (diff)
server: reuse(SO_REUSEADDR)
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp5
1 files changed, 4 insertions, 1 deletions
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<sockaddr *>(&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() {