34 iResult = ::WSAStartup(MAKEWORD(2, 2), &wsaData);
35 if (iResult != NO_ERROR)
43 m_socket = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
52 recvAddr.sin_family = AF_INET;
53 recvAddr.sin_port = port;
54 recvAddr.sin_addr.s_addr = inet_addr(hostname.c_str());
64 long timeoutSeconds = 5L;
68 long timeoutMs = timeoutSeconds * 1000L;
69 iResult = setsockopt(
m_socket, SOL_SOCKET, SO_RCVTIMEO, (
const char*)&timeoutMs,
sizeof(DWORD));
72 tv.tv_sec = timeoutSeconds;
74 iResult = setsockopt(
m_socket, SOL_SOCKET, SO_RCVTIMEO, (
const char*)&tv,
sizeof(
struct timeval));
87 iResult = ::WSAStartup(MAKEWORD(2, 2), &wsaData);
88 if (iResult != NO_ERROR)
105 server.sin_family = AF_INET;
106 server.sin_port = port;
107 server.sin_addr.s_addr = INADDR_ANY;
109 iResult = bind(
m_socketServer, (sockaddr*)&server,
sizeof(server));
126 iResult = ::WSAStartup(MAKEWORD(2, 2), &wsaData);
127 if (iResult != NO_ERROR)
135 m_socketTcp = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
138 std::printf(
"TCP socket is not created\n");
145 saddr.sin_family = AF_INET;
146 saddr.sin_port = port;
147 saddr.sin_addr.s_addr = INADDR_ANY;
149 iResult = bind(
m_socketTcp, (sockaddr*)&saddr,
sizeof(saddr));
159 int size =
sizeof(sockaddr_in);
161 clientSocket = accept(
m_socketServer, (sockaddr*)&client, (socklen_t*)&size);
167 printf(
"Connected to IP: %s, Port: %d\n", inet_ntoa(client.sin_addr), client.sin_port);
195 return ::send(
m_socket, (
char*)buffer.data(),
static_cast<int>(buffer.size()), 0);
201 buffer.resize(maxBytesToReceive);
202 char* pBuffer =
reinterpret_cast<char*
>(buffer.data());
204 return ::recv(
m_socket, pBuffer,
static_cast<int>(maxBytesToReceive), 0);
210 buffer.resize(nBytesToReceive);
211 char* pBuffer =
reinterpret_cast<char*
>(buffer.data());
213 int bytesReceived = 0;
214 while (nBytesToReceive > 0)
216 bytesReceived =
::recv(
m_socket, pBuffer,
static_cast<int>(nBytesToReceive), 0);
218 if (bytesReceived ==
SOCKET_ERROR || bytesReceived == 0)
222 pBuffer += bytesReceived;
223 nBytesToReceive -= bytesReceived;
226 return buffer.size();