diff --git a/common/ip_util.cpp b/common/ip_util.cpp index 1a4701c64..df4abcfc0 100644 --- a/common/ip_util.cpp +++ b/common/ip_util.cpp @@ -303,6 +303,14 @@ bool IpUtil::IsPortInUse(const std::string& ip, int port) { return true; // Assume in use on failure } +#ifdef _WIN32 + int opt = 1; + setsockopt(sock, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (char*)&opt, sizeof(opt)); // Windows-specific +#else + int opt = 1; + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); // Linux/macOS +#endif + sockaddr_in addr{}; addr.sin_family = AF_INET; addr.sin_port = htons(port);