tcpcliserv目录下执行make命令没有生成tcpcli11

1 篇文章 0 订阅

tcpcliserv目录下执行make命令没有生成tcpcli11

没有tcpcli11

今天在学习unp 5.13章节SIGPIPE信号时,需要执行tcpcli11程序,但是make命令执行后并没有生成tcpcli11而且make也没有报错,一番查找之后发现Makefile中没有将tcpcli11作为要生成的目标程序,如下图:

[root@localhost tcpcliserv]# more Makefile 
include ../Make.defines

PROGS =	tcpcli01 tcpcli04 tcpcli05 tcpcli06 \
		tcpcli07 tcpcli08 tcpcli09 tcpcli10 \
		tcpserv01 tcpserv02 tcpserv03 tcpserv04 \
		tcpserv08 tcpserv09 tcpservselect01 tcpservpoll01 tsigpipe

all:	${PROGS}
...

添加tcpcli11之后重新make即可

[root@localhost tcpcliserv]# more Makefile 
include ../Make.defines

PROGS =	tcpcli01 tcpcli04 tcpcli05 tcpcli06 \
		tcpcli07 tcpcli08 tcpcli09 tcpcli10 tcpcli11\
		tcpserv01 tcpserv02 tcpserv03 tcpserv04 \
		tcpserv08 tcpserv09 tcpservselect01 tcpservpoll01 tsigpipe

all:	${PROGS}
...

tcpcli11连接失败

执行tcpcli11后出现连接服务器失败

[root@localhost tcpcliserv]# ./tcpserv04 &
[1] 1710
[root@localhost tcpcliserv]# ./tcpcli11 127.0.0.1
connect error: Connection refused

看了下tcpcli11.c的源码,端口设置出了点问题,将17行的htons的参数改为SERV_PORT重新编译即可

  1 /* Use standard echo server; baseline measurements for nonblocking version */
  2 #include        "unp.h"
  3 
  4 int
  5 main(int argc, char **argv)
  6 {
  7         int                                     sockfd;
  8         struct sockaddr_in      servaddr;
  9 
 10         if (argc != 2)
 11                 err_quit("usage: tcpcli <IPaddress>");
 12 
 13         sockfd = Socket(AF_INET, SOCK_STREAM, 0);
 14 
 15         bzero(&servaddr, sizeof(servaddr));
 16         servaddr.sin_family = AF_INET;
 17         servaddr.sin_port = htons(SERV_PORT);	// 修改为SERV_PORT
 18         Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
 19 
 20         Connect(sockfd, (SA *) &servaddr, sizeof(servaddr));
 21 
 22         str_cli(stdin, sockfd);         /* do it all */
 23 
 24         exit(0);
 25 }

可以通过查看tcpserv04.c代码看到hton传入的也是SERV_PORT,SERV_PORT是unp.h中定义好的端口,值为9877

[root@localhost tcpcliserv]# grep "SERV_PORT" ../lib/unp.h
#define	SERV_PORT		 9877			/* TCP and UDP */
#define	SERV_PORT_STR	"9877"			/* TCP and UDP */
/* $$.ix [SERV_PORT]~constant,~definition~of$$ */
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值