68 #ifdef OJPH_OS_WINDOWS
80 #ifdef OJPH_OS_WINDOWS
81 u_long mode = block ? 0 : 1;
82 return ioctlsocket(
s, FIONBIO, &mode) == 0;
84 int flags = fcntl(
s, F_GETFL);
91 return fcntl(
s, F_SETFL, flags) != -1;
111 #ifdef OJPH_OS_WINDOWS
113 if (WSAStartup(MAKEWORD(2,2), &wsa) != 0)
116 OJPH_ERROR(0x00080001,
"Could not create socket : %s\n", err.data());
139 socket s(::socket(domain, type, protocol));
146 #ifdef OJPH_OS_WINDOWS
147 return WSAGetLastError();
157 return std::string(
"");
158 const int max_buf_size = 1024;
159 char buf[max_buf_size];
161 #ifdef OJPH_OS_WINDOWS
162 size_t size = FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM
163 | FORMAT_MESSAGE_IGNORE_INSERTS,
165 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
166 buf, max_buf_size, NULL);
167 buf[max_buf_size - 1] = 0;
168 #elif (defined OJPH_OS_APPLE) || \
169 ((_POSIX_C_SOURCE >= 200112L) && !_GNU_SOURCE)
171 int t = strerror_r(errnum, (
char*)buf, max_buf_size);
173 OJPH_ERROR(0x00080002,
"Error retrieving a text message for "
174 "socket error number %d\n", errnum);
175 buf[max_buf_size - 1] = 0;
177 v = strerror_r(errnum, (
char*)buf, max_buf_size);
194 #ifdef OJPH_OS_WINDOWS
195 return addr.sin_addr.S_un.S_addr;
197 return addr.sin_addr.s_addr;
std::string get_error_message(int errnum)
Abstructs obtaining a textual message for an errnum.
socket_manager()
default constructor
static ui32 get_addr(const sockaddr_in &addr)
Abstractly obtains the 32-bit IPv4 address integer.
static int ojph_socket_manager_counter
~socket_manager()
default constructor
socket create_socket(int domain, int type, int protocol)
Abstructs socket creation.
std::string get_last_error_message()
Abstructs obtaining a textual message for GetLastError/errno.
int get_last_error()
Abstructs get last error or errno.
A small wrapper for socket that only abstract Winsock2.
socket()
default constructor
void close()
Abstracts socket closing function.
bool set_blocking_mode(bool block)
Sets the blocking mode.
ojph_socket s
int for Linux/MacOS and SOCKET for Windows
#define OJPH_ERROR(t,...)
#define OJPH_INVALID_SOCKET