⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sourcesink.c,v

📁 unix网络编程的源代码
💻 C,V
字号:
head     1.1;branch   ;access   ;symbols  ;locks    ;comment  @ * @;1.1date     94.01.17.14.59.31;  author rstevens;  state Exp;branches ;next     ;desc@@1.1log@08Dec93 version for tcpipi@text@/* * Copyright (c) 1993 W. Richard Stevens.  All rights reserved. * Permission to use or modify this software and its documentation only for * educational purposes and without fee is hereby granted, provided that * the above copyright notice appear in all copies.  The author makes no * representations about the suitability of this software for any purpose. * It is provided "as is" without express or implied warranty. */#include	"sock.h"#include	<ctype.h>void	pattern(char *ptr, int len);voidsink(int sockfd){	int		i, n;	char	oob;	if (client) {		pattern(wbuf, writelen);	/* fill send buffer with a pattern */		if (pauseinit)			sleep(pauseinit);		for (i = 1; i <= nbuf; i++) {			if (urgwrite == i) {				oob = urgwrite;				if ( (n = send(sockfd, &oob, 1, MSG_OOB)) != 1)					err_sys("send of MSG_OOB returned %d, expected %d",																n, writelen);				if (verbose)					fprintf(stderr, "wrote %d byte of urgent data\n", n);			}			if ( (n = write(sockfd, wbuf, writelen)) != writelen)				err_sys("write returned %d, expected %d", n, writelen);			if (verbose)				fprintf(stderr, "wrote %d bytes\n", n);			if (pauserw)				sleep(pauserw);		}	} else {		if (pauseinit)			sleep(pauseinit);		for ( ; ; ) {			if ( (n = read(sockfd, rbuf, readlen)) < 0) {				err_sys("read error");			} else if (n == 0) {				break;	 	/* connection closed by peer */			} else if (n != readlen)				err_quit("read returned %d, expected %d", n, readlen);				if (verbose)				fprintf(stderr, "received %d bytes\n", n);			if (pauserw)				sleep(pauserw);		}	}	if (pauseclose) {		if (verbose)				fprintf(stderr, "pausing before close\n");		sleep(pauseclose);	}	if (close(sockfd) < 0)		err_sys("close error");		/* since SO_LINGER may be set */}voidpattern(char *ptr, int len){	char	c;	c = 0;	while(len-- > 0)  {		while(isprint((c & 0x7F)) == 0)			c++;	/* skip over nonprinting characters */		*ptr++ = (c++ & 0x7F);	}}@

⌨️ 快捷键说明

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