cleanup a little bit

This commit is contained in:
2026-07-18 14:43:36 -05:00
parent 1c74c04db3
commit aa007a3130
2 changed files with 98 additions and 55 deletions

View File

@@ -24,53 +24,65 @@ ErrorCode TcpClient::init() {
logger_->log("TcpClient", LogFlag::Debug, "Initializing TcpClient...");
// keeping everything in here for now
int socketFd;
int socketFd; // file descriptor for the client socket (socket proper is a function)
int sendBytes;
int receiveBytes;
char buffer[1024];
struct hostent* host;
struct sockaddr_in serverAddress;
struct timeval timestamp;
struct timeval timestampEnd;
struct hostent* host; // houses host network info
struct sockaddr_in serverAddress; // ip address of the server socket
// parse the hostname string into uint8s
host = gethostbyname(configuration_.hostname.c_str());
if(host == NULL) {
logger_->log("TcpClient", LogFlag::Debug, "Unable to parse hostname.");
close(socketFd); // TODO: probably on a destructor
return ErrorCode::Error;
}
// create tcp socket
socketFd = socket(AF_INET, SOCK_STREAM, 0);
if(socketFd < 0) {
logger_->log("TcpClient", LogFlag::Debug, "Unable to open client socket.");
close(socketFd);
return ErrorCode::Error;
}
// describe the server address from the hostname and port
memset(&serverAddress.sin_zero, 0, sizeof(serverAddress.sin_zero));
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(configuration_.port);
serverAddress.sin_addr = *((struct in_addr*)host->h_addr);
memset(&serverAddress.sin_zero, 0, sizeof(serverAddress.sin_zero));
// connect to server
if(connect(socketFd, (struct sockaddr*)&serverAddress, sizeof(struct sockaddr)) < 0) {
logger_->log("TcpClient", LogFlag::Debug, "Unable to connect to server.");
close(socketFd);
return ErrorCode::Error;
}
// send data buffer to server
memset(buffer, 0x67, sizeof(buffer));
gettimeofday(&timestamp, NULL);
sendBytes = send(socketFd, buffer, sizeof(buffer), 0);
if(sendBytes < 0) {
logger_->log("TcpClient", LogFlag::Debug, "Unable to send to server.");
logger_->log("TcpClient", LogFlag::Error, "Unable to send to server.");
close(socketFd);
return ErrorCode::Error;
}
logger_->log("TcpClient", LogFlag::Debug, "Sent {} bytes to the server.", sendBytes);
gettimeofday(&timestampEnd, NULL);
// listen for receive from the server
memset(buffer, 0x00, sizeof(buffer));
receiveBytes = recv(socketFd, buffer, sizeof(buffer), 0);
receiveBytes = recv(socketFd, buffer, sizeof(buffer), 0); // TODO: this currently blocks forever, add timeout
// we expect a response based on the server design, something went wrong otherwise
if(receiveBytes < 0) {
logger_->log("TcpClient", LogFlag::Debug, "Unable to receive from server.");
logger_->log("TcpClient", LogFlag::Error, "Unable to receive from server.");
return ErrorCode::Error;
} else if(receiveBytes == 0) {
logger_->log("TcpClient", LogFlag::Error, "Server closed the connection during receive.");
close(socketFd);
return ErrorCode::Error;
}