client.c

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

C
47
字号
#include	"unp.h"#define	MAXN	16384		/* max #bytes to request from server */intmain(int argc, char **argv){	int		i, j, fd, nchildren, nloops, nbytes;	pid_t	pid;	ssize_t	n;	char	request[MAXLINE], reply[MAXN];	if (argc != 6)		err_quit("usage: client <hostname or IPaddr> <port> <#children> "				 "<#loops/child> <#bytes/request>");	nchildren = atoi(argv[3]);	nloops = atoi(argv[4]);	nbytes = atoi(argv[5]);	snprintf(request, sizeof(request), "%d\n", nbytes); /* newline at end */	for (i = 0; i < nchildren; i++) {		if ( (pid = Fork()) == 0) {		/* child */			for (j = 0; j < nloops; j++) {				fd = Tcp_connect(argv[1], argv[2]);				Write(fd, request, strlen(request));				if ( (n = Readn(fd, reply, nbytes)) != nbytes)					err_quit("server returned %d bytes", n);				Close(fd);		/* TIME_WAIT on client, not server */			}			printf("child %d done\n", i);			exit(0);		}		/* parent loops around to fork() again */	}	while (wait(NULL) > 0)	/* now parent waits for all children */		;	if (errno != ECHILD)		err_sys("wait error");	exit(0);}

⌨️ 快捷键说明

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