Не заходит в цикл отправки сообщения клиенту (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);
}