【发布时间】:2011-03-09 20:05:50
【问题描述】:
我有一个在多台机器上运行的套接字服务器。除了在一台机器上之外,它就像一个魅力。
服务器绑定正确,但在客户端尝试连接时返回错误(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
*/
}
感谢您为我指明了正确的方向。
【问题讨论】: