myserver.c

来自「分布式计算实验——在Linux中实现客户机-服务器通信」· C语言 代码 · 共 51 行

C
51
字号
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<netinet/in.h>
#include<signal.h>
#include<unistd.h>

int main()
{
	int ser_sockfd=0;                     //服务器
	int cli_sockfd=0;                     //客户端
	int ser_len=0;
	int cli_len=0;
	struct sockaddr_in ser_add;
	struct sockaddr_in cli_add;
	
	ser_sockfd = socket(AF_INET,SOCK_STREAM,0);
	
	ser_add.sin_family = AF_INET;
	ser_add.sin_addr.s_addr = htonl(INADDR_ANY);
	ser_add.sin_port = htons(10000);
	ser_len = sizeof(ser_add);
	bind(ser_sockfd,(struct sockaddr *)&ser_add,ser_len);   //绑定端口
	
	listen(ser_sockfd,5);                       //监听端口,接收队列长度为5
	
	signal(SIGCHLD,SIG_IGN);
	
	while(1)
	{
		char buffer[1024];
		cli_len = sizeof(cli_add);
		cli_sockfd = accept(ser_sockfd,
			(struct sockaddr *)&cli_add,&cli_len);
		
		if(fork() == 0)
		{
			
			read(cli_sockfd,buffer,1024);
			printf("Server: Message has been received!  ");
			printf("%s\n",buffer);
			close(cli_sockfd);
			exit(0);
		}
		else
		{
			close(cli_sockfd);
		}
	}
}

⌨️ 快捷键说明

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