29 last_error_ =
"Failed to create socket: " + std::string(strerror(errno));
33 struct sockaddr_in server_addr = {};
34 server_addr.sin_family = AF_INET;
35 server_addr.sin_port = htons(
port);
37 if (inet_aton(host.c_str(), &server_addr.sin_addr) == 0) {
46 setsockopt(
socket_fd_, SOL_SOCKET, SO_KEEPALIVE, &keepalive,
sizeof(keepalive));
50 setsockopt(
socket_fd_, IPPROTO_TCP, TCP_NODELAY, &nodelay,
sizeof(nodelay));
53 int sndbuf = 1024 * 1024;
54 setsockopt(
socket_fd_, SOL_SOCKET, SO_SNDBUF, &sndbuf,
sizeof(sndbuf));
61 setsockopt(
socket_fd_, SOL_SOCKET, SO_SNDTIMEO, &tv,
sizeof(tv));
64 sizeof(server_addr)) < 0) {
65 last_error_ =
"Failed to connect: " + std::string(strerror(errno));