udpecho2.c

来自「一个很好的unix网络编程框架」· C语言 代码 · 共 41 行

C
41
字号
#include "etcp.h"int main( int argc, char **argv ){	struct sockaddr_in peer;	int s;	int rc;	int len;	int pidsz;	char buf[ 120 ];	pidsz = sprintf( buf, "%d: ", getpid() );	len = sizeof( peer );	rc = recvfrom( 0, buf + pidsz, sizeof( buf ) - pidsz,		0, ( struct sockaddr * )&peer, &len );	if ( rc < 0 )		exit( 1 );	s = socket( AF_INET, SOCK_DGRAM, 0 );	if ( s < 0 )		exit( 1 );	if ( connect( s, ( struct sockaddr * )&peer, len ) < 0 )		exit( 1 );	if ( fork() != 0 )				/* error or parent? */		exit( 0 );	/* child process */	while ( strncmp( buf + pidsz, "done", 4 ) != 0 )	{		if ( write( s, buf, rc + pidsz ) < 0 )			break;		pidsz = sprintf( buf, "%d: ", getpid() );		alarm( 30 );		rc = read( s, buf + pidsz, sizeof( buf ) - pidsz );		alarm( 0 );		if ( rc < 0 )			break;	}	exit( 0 );}

⌨️ 快捷键说明

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