todo: iocp recv안되는 문제 해결하기

This commit is contained in:
2025-06-04 02:33:00 +09:00
parent 3f052a5f7f
commit c0e0279e5c
15 changed files with 363 additions and 157 deletions

View File

@@ -17,10 +17,22 @@ void TCPSocket::accept(TCPSocket &newSock, Address &__addr) {
}
int TCPSocket::connect(Address &serveraddr) {
int retVal =
::connect(sock, (struct sockaddr *)&serveraddr.addr, serveraddr.length);
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) spdlog::error("connect()");
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;
}
@@ -39,4 +51,4 @@ int TCPSocket::send(const void *__buf, size_t __n, int __flags) {
return retVal;
}
} // namespace Socket
} // namespace Network