tcpcli01.c

来自「Unix网络编程 基于Socket的网络编程」· C语言 代码 · 共 50 行

C
50
字号
#include	"unp.h"intmain(int argc, char **argv){	int					c, sockfd, len = 0;	u_char				*ptr;	struct addrinfo		*ai;	if (argc < 2)		err_quit("usage: tcpcli01 [ -[gG] <hostname> ... ] <hostname>");	ptr = inet_srcrt_init();	opterr = 0;		/* don't want getopt() writing to stderr */	while ( (c = getopt(argc, argv, "g:G:")) != -1) {		switch (c) {		case 'g':			/* loose source route */			len = inet_srcrt_add(optarg, 0);			break;		case 'G':			/* strict source route */			len = inet_srcrt_add(optarg, 1);			break;		case '?':			err_quit("unrecognized option: %c", c);		}	}	if (optind != argc-1)		err_quit("missing <hostname>");	ai = Host_serv(argv[optind], SERV_PORT_STR, AF_INET, SOCK_STREAM);	sockfd = Socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);	if (len > 0) {		len = inet_srcrt_add(argv[optind], 0);	/* dest at end */		Setsockopt(sockfd, IPPROTO_IP, IP_OPTIONS, ptr, len);		free(ptr);	}	Connect(sockfd, ai->ai_addr, ai->ai_addrlen);	str_cli(stdin, sockfd);		/* do it all */	exit(0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?