12#define DIAGNOSTIC_PUSH() _Pragma("GCC diagnostic push")
13#define DIAGNOSTIC_IGNORE(warning) _Pragma(QUOTE(GCC diagnostic ignored warning))
14#define DIAGNOSTIC_POP() _Pragma("GCC diagnostic pop")
16#define DIAGNOSTIC_PUSH()
17#define DIAGNOSTIC_IGNORE(warning)
18#define DIAGNOSTIC_POP()
41#if !defined(WINVER) || (WINVER < _WIN32_WINNT_WINXP)
42#error WINVER must be defined to something equal or above to 0x0501
44#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < _WIN32_WINNT_WINXP)
45#error _WIN32_WINNT must be defined to something equal or above to 0x0501
54#pragma comment(lib, "Ws2_32.lib")
55#pragma comment(lib, "iphlpapi.lib")
68#include <netinet/in.h>
69#include <netinet/tcp.h>
72#include <sys/select.h>
73#include <sys/socket.h>
194 return WSAStartup(MAKEWORD(2, 2), &WSAData);
204 return WSAGetLastError();
210 return closesocket(fd);
213const char*
inet_ntop_aux(
int af,
const void* src,
char* dst, socklen_t size);
215#define JSOCKETPP_TIMEOUT_CODE WSAETIMEDOUT
224#define JSOCKETPP_TIMEOUT_CODE ETIMEDOUT
245 return ioctl(fd,
static_cast<unsigned long>(cmd), argp);
372 return IN6_IS_ADDR_V4MAPPED(&addr6->sin6_addr);
392 addr4.sin_family = AF_INET;
393 addr4.sin_port = addr6.sin6_port;
394 std::memcpy(&addr4.sin_addr.s_addr, addr6.sin6_addr.s6_addr + 12,
sizeof(addr4.sin_addr.s_addr));
Exception class for socket-related errors in jsocketpp.
std::uint16_t Port
Type alias representing a TCP or UDP port number (1–65535).
Definition common.hpp:315
sockaddr_in convertIPv4MappedIPv6ToIPv4(const sockaddr_in6 &addr6)
Converts an IPv4-mapped IPv6 address to a pure IPv4 sockaddr_in.
Definition common.hpp:389
bool isIPv4MappedIPv6(const sockaddr_in6 *addr6)
Checks if a given sockaddr_in6 represents an IPv4-mapped IPv6 address.
Definition common.hpp:370
constexpr std::size_t DefaultBufferSize
Default internal buffer size (in bytes) for TCP socket read operations.
Definition common.hpp:352
Endianness utilities for network byte order conversion.
uint16_t toNetwork(const uint16_t val)
Converts a 16-bit unsigned integer from host to network byte order.
Definition common.hpp:444
uint16_t fromNetwork(const uint16_t val)
Converts a 16-bit unsigned integer from network to host byte order.
Definition common.hpp:460
A C++ socket library providing Java-style networking interfaces.
Definition BufferView.hpp:13
int CleanupSockets()
Definition common.hpp:197
std::vector< std::string > getHostAddr()
Get all local network interface addresses as strings.
Definition common.cpp:120
ShutdownMode
Enum for socket shutdown modes.
Definition common.hpp:292
@ Write
Shutdown write operations (SHUT_WR or SD_SEND)
Definition common.hpp:294
@ Both
Shutdown both read and write operations (SHUT_RDWR or SD_BOTH)
Definition common.hpp:295
@ Read
Shutdown read operations (SHUT_RD or SD_RECEIVE)
Definition common.hpp:293
int CloseSocket(SOCKET fd)
Definition common.hpp:208
std::string SocketErrorMessage(int error, bool gaiStrerror=false)
Returns a human-readable error message for a socket error code.
Definition common.cpp:5
std::string SocketErrorMessageWrap(int error, bool gaiStrerror=false)
Returns a human-readable error message for a socket error code, with exception safety.
Definition common.cpp:50
constexpr SOCKET INVALID_SOCKET
Definition common.hpp:220
const char * inet_ntop_aux(int af, const void *src, char *dst, socklen_t size)
Definition common.cpp:76
int ioctlsocket(const SOCKET fd, const long cmd, u_long *argp)
Definition common.hpp:243
sockaddr_un SOCKADDR_UN
Definition common.hpp:222
int GetSocketError()
Definition common.hpp:202
int SOCKET
Definition common.hpp:219
constexpr SOCKET SOCKET_ERROR
Definition common.hpp:221
int InitSockets()
Definition common.hpp:191