99 ZeroMemory(&hints,
sizeof(hints));
101 hints.ai_family = AF_INET;
102 hints.ai_socktype = SOCK_STREAM;
103 hints.ai_flags = AI_NUMERICSERV;
104 hints.ai_protocol = 0;
107 struct addrinfo *addrinfo_result;
108 auto rv = ::getaddrinfo(host.
c_str(), port_str.c_str(), &hints, &addrinfo_result);
112 last_error = ::WSAGetLastError();
119 for (
auto *rp = addrinfo_result; rp !=
nullptr; rp = rp->ai_next)
121 socket_ = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
124 last_error = ::WSAGetLastError();
134 last_error = ::WSAGetLastError();
138 ::freeaddrinfo(addrinfo_result);
147 ::setsockopt(
socket_, IPPROTO_TCP, TCP_NODELAY,
reinterpret_cast<char *
>(&enable_flag),
sizeof(enable_flag));