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

📄 server.c

📁 深圳英培特EduKit-III实验箱实验程序。一共有10多个
💻 C
字号:
/*********************************************************************
* File:		server.c
* Author:	Embest	J.Zhao	2004.12.10
* Desc:		server
* History:	
*********************************************************************/

#include <sys/socket.h>
#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define MYPORT 8000
#define BACKLOG 10

main() {
	int sockfd,con_fd,numbytes,ret,pid;
	struct sockaddr_in my_addr;
	struct sockaddr_in their_addr;
	int sin_size;
	int lis;
	char buf[256];
	
socketing:
	//creat socket.
	sockfd=socket(AF_INET,SOCK_STREAM,0);
	if (sockfd==-1) {
		printf("failed when creating\n");
		exit(-1);
	}

	//binding socket.
	my_addr.sin_family=AF_INET;
	my_addr.sin_port=htons(MYPORT);
	my_addr.sin_addr.s_addr=INADDR_ANY;
	bzero(&(my_addr.sin_zero),8);
	ret=bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr));
	if (ret==-1) {
		printf("failed when binding\n");
		exit(-1);
	}

	//listen.
	if (listen(sockfd,BACKLOG)==-1) {
		printf("failed when listening\n");
		exit(-1);
	}		
	printf("server listening...wait for connect...\n");
	while (1) {
		sin_size=sizeof(struct sockaddr);
		con_fd=accept(sockfd,(struct sockaddr*)&their_addr,&sin_size);
		if (con_fd<0) {
			printf("failed when accepting\n");
			exit(-1);
		}
			
		//recv a string from client and print the string.
		if (recv(con_fd,buf,sizeof(buf),0)==-1) {
			printf("failed when receiving the string\n");
			exit(-1);
		}
		printf("   received form client...%s\n",buf);
		
		//send the buf string to client and print it.
		if (send(con_fd,&buf,sizeof(buf),0)==-1) {
			printf("failed when sending the string");
			exit(-1);
		}
		printf("   send to client...%s\n",buf);
		close(con_fd);
		exit(0);
	}
}

⌨️ 快捷键说明

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