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

📄 xout2.c

📁 一个很好的unix网络编程框架
💻 C
字号:
#include "etcp.h"#define ACK		0x6		/* an ACK character */int main( int argc, char **argv ){	fd_set allreads;	fd_set readmask;	fd_set sockonly;	struct timeval tv;	struct timeval *tvp = NULL;	SOCKET s;	int rc;	char buf[ 128 ];	const static struct timeval T0 = { 2, 0 };	INIT();	s = tcp_client( argv[ 1 ], argv[ 2 ] );	FD_ZERO( &allreads );	FD_SET( s, &allreads );	sockonly = allreads;	FD_SET( 0, &allreads );	readmask = allreads;	for ( ;; )	{		rc = select( s + 1, &readmask, NULL, NULL, tvp );		if ( rc < 0 )			error( 1, errno, "select failure" );		if ( rc == 0 )			error( 1, 0, "message timed out\n" );		if ( FD_ISSET( s, &readmask ) )		{			rc = recv( s, buf, sizeof( buf ), 0 );			if ( rc == 0 )				error( 1, 0, "server disconnected\n" );			else if ( rc < 0 )				error( 1, errno, "recv failure" );			else if ( rc != 1 || buf[ 0 ] != ACK )				error( 1, 0, "unexpected input [%c]\n", buf[ 0 ] );			tvp = NULL;				/* turn timer off */			readmask = allreads;	/* and stdin on */		}		if ( FD_ISSET( 0, &readmask ) )		{			rc = read( 0, buf, sizeof( buf ) );			if ( rc < 0 )				error( 1, errno, "read failure" );			if ( send( s, buf, rc, 0 ) < 0 )				error( 1, errno, "send failure" );			tv = T0;				/* reset timer */			tvp = &tv;				/* turn timer on */			readmask = sockonly;	/* and stdin off */		}	}}

⌨️ 快捷键说明

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