Всем привет, пишу вот свое первое клиент-серверное приложение на С, написал самые базовые функции, стиля принять-отправить сообщение. На убунте все нормально - иду на федору, компиляю, запускаю - и все виснет намертво. Путем тыкания в случайные места кода - нашел что виснет на данном вызове:
new_sock = accept(def_sock, (struct sockaddr *) &n_addr, &addr_size)
Я чего-то не знаю? Может кто сталкивался?
Код сервера: http://pastebin.com/T6t2kHir
Код клиента: http://pastebin.com/uuNfmVak
2) Пытался юзать fork() - взял стандартный пример из какой-то книжки, и не компиляется, проблема вот в этом:
void sigchld_handler(int signo)
{
while(waitpid(-1, NULL, WHOHANG) > 0);
}
Компилятор стабильно показывает следующее:
[test@localhost cs_app]$ make
rm -f server client
gcc -Wall -g -std=c99 -Werror server.c -o server
server.c: In function ‘sigchld_handler’:
server.c:14:26: error: ‘WHOHANG’ undeclared (first use in this function)
while(waitpid(-1, NULL, WHOHANG) > 0);
^
server.c:14:26: note: each undeclared identifier is reported only once for each function it appears in
make: *** [server] Error 1
Все хедеры включены, перерыл первые 2 страницы гугла - совершенно ничего, а если нет ответа в гугле - значит я что-то делаю не так. Может быть кто-то знает что здесь не так? Код ниже:
Буду крайне признателен за любую помощь, хотя бы дайте какую-нибудь подсказку