tcp-server.c

来自「uclinux下tcp和udp服务器的建立」· C语言 代码 · 共 56 行

C
56
字号
#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/wait.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define PORT 3000  /* 定义我们的通信端口*/#define BACKLOG 10 /*定义处理队列长度*/main (){ int sockfd, new_fd; struct sockaddr_in srvaddr; struct sockaddr_in cliaddr; int sin_size;/*建立socket以便通信*/ if ( (sockfd=socket (AF_INET, SOCK_STREAM, 0)) ==-1)   {	perror ("Creat socket error");	exit (1);   } bzero (&srvaddr, sizeof (srvaddr)); srvaddr.sin_family=AF_INET; srvaddr.sin_port=htons (PORT); srvaddr.sin_addr.s_addr=htonl (INADDR_ANY);/*绑定socket*/ if (bind (sockfd, (struct sockaddr * ) &srvaddr,sizeof (struct sockaddr)) ==-1)   {	perror ("Error when bind");	exit (1);   }/*开始在socket上监听*/ if (listen (sockfd, BACKLOG) ==-1)   {	perror ("lisen error");	exit (1);   }/*循环等待,处理连接请求和发送应答信息*/ for (;;)   {	sin_size=sizeof (struct sockaddr_in);	if ( (new_fd=accept (sockfd, (struct sockaddr * ) &cliaddr,&sin_size)) ==-1)	   {		perror ("Error when accept");		exit (1);	   }	printf ("Server: got connection from %s \n", inet_ntoa (cliaddr.sin_addr));	if (write (new_fd,"hello,this is server\n", 22) ==-1)	   perror ("Error when send string");	close (new_fd);   } close (sockfd);   	}

⌨️ 快捷键说明

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