Пример #1
0
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;
}