diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-03-05 14:03:18 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-03-05 17:33:49 +0800 |
| commit | 63867d0d1a21be521a0049cdc98e25c0af95f9f0 (patch) | |
| tree | 4ad743d0a36c4e6888a185ced5dedaed61bb3c62 /src/server.cpp | |
| parent | a2c9584961fc6e0406e25ad597d2f5cfb0b3007b (diff) | |
server: reuse(SO_REUSEADDR)
Diffstat (limited to 'src/server.cpp')
| -rw-r--r-- | src/server.cpp | 5 |
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() { |
