28 lines
790 B
C++
28 lines
790 B
C++
#include "socket/udp_socket.h"
|
|
|
|
namespace Network {
|
|
|
|
int UDPSocket::init(int domain) { return init(domain, SOCK_DGRAM, 0); }
|
|
|
|
int UDPSocket::connect(Address &serveraddr) {
|
|
std::string addr_string = serveraddr;
|
|
int retVal = -1;
|
|
if (serveraddr.family == AF_INET)
|
|
retVal = ::connect(sock, (const sockaddr *)&serveraddr.addr_in,
|
|
serveraddr.length);
|
|
else
|
|
retVal = ::connect(sock, (const sockaddr *)&serveraddr.addr_in6,
|
|
serveraddr.length);
|
|
memcpy(&remoteAddr, &serveraddr, sizeof(Address));
|
|
if (retVal == INVALID_SOCKET) {
|
|
#ifdef _WIN32
|
|
int err = WSAGetLastError();
|
|
spdlog::error("connect() failed: WSA error {} (0x{:X})", err, err);
|
|
#endif
|
|
spdlog::error("connect()");
|
|
}
|
|
return retVal;
|
|
}
|
|
|
|
} // namespace Network
|