void* TcpServer::receiveThreadFunction(void* arg){ TcpServer* server = (TcpServer*)arg; while(server->initialized){ printf("TcpServer: listening for new connection\n"); struct sockaddr_in client_addr; socklen_t client_addr_len = sizeof(client_addr); server->client_fd = accept(server->socket_fd, (struct sockaddr*)&client_addr, &client_addr_len); if (server->client_fd < 0){ perror("TcpServer Error: accept"); server->initialized = false; return 0; } printf("TcpServer: connection accepted\n"); server->connected = true; while(server->isConnected()){ server->receivePacket(); } printf("TcpServer: connection closed\n"); } return 0; }