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

📄 tcp_serv.c

📁 Unix/Linux下服务端/客户通过TCP/IP通讯的程序
💻 C
字号:
#include "tcp.h"int my_sock;main(argc, argv)int argc;char * argv[];{	int sockfd,newsockfd ;	int clilen, childpid;	char s[512];	struct sockaddr_in serv_addr, cli_addr;	extern void sig_finish();	signal ( SIGINT, sig_finish );	/**** 	Internet Address Family: AF_INET 		scoket type : SOCK_STREAME 		***/	if( (sockfd = socket( AF_INET, SOCK_STREAM,0)) < 0 ) 		err_sys( "Server: can't open socket " ) ;	my_sock = sockfd;	printf( "TCP SOCKET IS SUCCESS LOAD IN! Sockfd = %d\n", sockfd );	bzero( (char *)&serv_addr, sizeof(serv_addr ) );	serv_addr.sin_family = AF_INET;		serv_addr.sin_addr.s_addr = htonl( INADDR_ANY );		serv_addr.sin_port = htons( TCP_PORT );		if ( bind( sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)		err_sys( "Server: can't bind local address " ) ;	printf( "TCP BIND IS SUCCESS LOAD IN! The Internet Address is %d\n",htonl(INADDR_ANY) );		listen( sockfd, 5 );	printf( "TCP LISTEN IS SUCCESS LOAD IN!\n" );	while(1) {		clilen = sizeof( cli_addr );			newsockfd=accept(sockfd, (struct sockaddr *)&cli_addr,&clilen );		printf( "Accept a requess! newsocket is %d\n", newsockfd );		if ( newsockfd < 0 ) 			err_sys( "Server: sccept error " );		if ( ( childpid = fork() ) < 0 ) 			err_sys( "Server: fork error " );		else if ( childpid == 0 ) {			close( sockfd );			serv_con( newsockfd );			exit(0);		}		close( newsockfd );	}	close( sockfd );}serv_con( fd )int fd; {	int n;	char line[MAXLINE];	while(1) {		n = readline( fd, line, MAXLINE );				if ( n==0 ) return (0);		else if( n<0 ) err_sys( "serv_con: readline error!" );		printf( "line is %s", line );/*		if ( write( 1, line, n ) != n ) 			err_sys( "serv_con:write stdsrc error !" );		if ( writen( fd, line, n )!=0 ) 			err_sys( "serv_con:write to newsockfd error! " );*/	}}err_sys(s)char *s;{	printf( s );	exit(0);}void sig_finish (){	printf( "this is end!\n" );	close( my_sock );		exit(0);}

⌨️ 快捷键说明

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