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

📄 server.c

📁 最传统得加密解密方法des,此源代码需在嵌入式linux下编译运行
💻 C
字号:
//----------POWERED BY BOBO---------//----------引入库函数------------------#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#include <arpa/inet.h>#include "des.h"//--------------------------------------#define WAITBUF 10		//定义监听队列void process_cli(int connectfd,struct sockaddr_in client);main(int argc, char *argv[]){    int listenfd, connectfd;		//定义SOCKET参量    struct sockaddr_in server;	//定义服务器端SOCKADDR结构    struct sockaddr_in client;	//定义客户端SOCKADDR结构    unsigned int sin_size, portnumber;//定义结构参数和端口变量    if(argc != 2)			//判断输入参数是否正确    {        fprintf(stderr, "Usage:%s portnumber\a\n", argv[0]);        exit(1);    }    if((portnumber = atoi(argv[1])) < 0)    {        fprintf(stderr, "Usage: %s portnumber error\a\n", argv[0]);    }    if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)	//建立SOCKET并判断是否成功    {        fprintf(stderr, "Socket error:%s\n\a", strerror(errno));        exit(1);    }    //int opt;    //setsockopt(listenfd,SOL_SOCKET,SO_REUSERADDR,&opt,sizeof(opt));    bzero(&server, sizeof(struct sockaddr_in));		//重置    server.sin_family = AF_INET;			//设置SOCKET DOMAIN    server.sin_addr.s_addr = htonl(INADDR_ANY);		//设置IP地址    server.sin_port = portnumber;			//设置端口号    if(bind(listenfd,(struct sockaddr *)(&server), sizeof(struct sockaddr)) == -1)	//绑定SOCKET    {        fprintf(stderr, "Bind error:%s\n\a", strerror(errno));        exit(1);    }    if(listen(listenfd, WAITBUF) == -1)			//设置监听    {        fprintf(stderr, "Listen error:%s\n\a", strerror(errno));        exit(1);    }    sin_size = sizeof(struct sockaddr_in);    while(1)						//此处循环等待客户端接入    {            if((connectfd = accept(listenfd, (struct sockaddr *)(&client), &sin_size)) == -1)        {            fprintf( stderr, "Accept error:%s\n\a", strerror(errno));            exit(1);        }//接收客户端信息将其存入客户端结构体	process_cli(connectfd,client);        //exit(1);    }    close(listenfd);    //exit(0);} void process_cli(int connectfd,struct sockaddr_in client){	int num;			//定义接收数据长度	char recvbuf[1024],sendbuf[1024];	//定义接收发送缓冲区	char Key[8]="12345678";	fprintf(stderr, "From %s:", inet_ntoa(client.sin_addr));	while(num = recv(connectfd,recvbuf,1024,0))	//接收数据	{		recvbuf[num]='\0';		printf("%s\n",recvbuf);		des_go(sendbuf,recvbuf,strlen(recvbuf),Key,0);		send(connectfd,sendbuf,strlen(sendbuf),0);	//发送数据		//continue;	}	close(connectfd);}

⌨️ 快捷键说明

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