У меня есть сокет-сервер, работающий на нескольких машинах.Он работает как чудо, кроме того, на один компьютер.
Сервер связывает правильно, но возвращает ошибку (EFAULT), когда клиент пытается подключиться.Идея, что источник проблемы может быть.Заранее большое спасибо!
Некоторая информация о машине: Linux версия 2.6.18.3 gcc версия 3.3.5 (Debian 1: 3.3.5-13)
Источник сервера сокетов довольно хорошпрямо вперед.
...
...
struct sockaddr_in server_addr;
struct sockaddr* client;
socklen_t alen;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
...
}
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = INADDR_ANY;
server_addr.sin_port = htons(port);
if(bind(sockfd, (struct sockaddr *) &server_addr, sizeof(server_addr)) < 0){
...
}
if(listen(sockfd,BACKLOG) == -1){
...
}
alen = sizeof(client);
new_fd = accept(sockfd, client, &alen);
if (new_fd == -1) {
/*
* this part of the code is executed
* errno is set to 14
*/
}
Спасибо, что указали мне в правильном направлении.