📄 tcp_serv.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 + -