套接字第5章服务器回复程序: 图5-2 tcpcliserv/tcpserv01.c
书上说:"首先,我们在主机上后台启动服务器 ./tcpserv01 &, 会看到一个 address为9877的套接字处于listen状态:"
但是我用 netstat -a并没有发现address 为9877的套接字
然后调用图 5-4 tcp回射客户程序 tcpcliserv/tcpcli01.c ,会发现, 客户程序在运行到
Connect()时出错了, 我猜肯定是服务器程序有问题, 但是问题在哪里?
1 #include "unp.h"
2
3 int
4 main(int argc, char **argv)
5 {
6 int listenfd, connfd;
7 pid_t childpid;
8 socklen_t clilen;
9 struct sockaddr_in cliaddr, servaddr;
10
11 listenfd = Socket(AF_INET, SOCK_STREAM, 0);
12
13 bzero(&servaddr, sizeof(servaddr));
14 servaddr.sin_family = AF_INET;
15 servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
16 servaddr.sin_port = htons(SERV_PORT);
17
18 Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));
19
20 Listen(listenfd, LISTENQ);
21
22 for ( ; ; ) {
23 clilen = sizeof(cliaddr);
24 connfd = Accept(listenfd, (SA *) &cliaddr, &clilen);
25
26 if ( (childpid = Fork()) == 0) { /* child process */
27 Close(listenfd); /* close listening socket */
28 str_echo(connfd); /* process the request */
29 exit(0);
30 }
31 Close(connfd); /* parent closes connected socket */
32 }
33 }
![图片说明](https://img-ask.csdn.net/upload/201509/10/1441851012_179041.png)![图片说明](https://img-ask.csdn.net/upload/201509/16/1442393246_433240.png)