Не заходит в цикл отправки сообщения клиенту (Socket linux)

Необходимо написать сервер и клиент на socket(linux). Написал серверную часть, но он даже не заходит в цикл while(1) для принятия соединения с клинетом. Так же нужно было реализовать многопоточность с помощью posix threads. В чем ошибка в написании серверной части?

int main() {
    int client_socket, server_socket;
    socklen_t addLenght;
    pthread_t thread;
    struct sockaddr_in server_address, client_address;
    if ((server_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
        perror("socket");
        exit(1);
    }
    memset(&client_address, 0, sizeof(client_address));
    memset(&server_address, 0, sizeof(server_address));

    server_address.sin_family = AF_INET;
    server_address.sin_addr.s_addr = htonl(INADDR_ANY);
    server_address.sin_port = 0;

    if (bind(server_socket, (struct sockaddr *)&server_address,
             sizeof(server_address)) < 0) {
        perror("bind");
        exit(2);
    }   
    addLenght = sizeof(server_address);
    if (getsockname(server_socket, (struct sockaddr *)&server_address, &addLenght) <
        0) {
        perror("getsockname");
        exit(-1);
    }
    listen(server_socket, CLIENT_SQUEUE);
    printf("SERVER: номер портра - %d\n", ntohs(server_address.sin_port));
    while(1) {
        if ((client_socket = accept(server_socket, (struct sockaddr *)&client_address,
                                  &addLenght)) < 0) {
            perror("accept");
            exit(4);
        }
        arg arguments = {client_socket, ntohs(client_address.sin_port)};
        pthread_create(&thread, NULL, threads, (void*)&arguments);
    }

Ответы (0 шт):