📄 client.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 "des.h"//-------------------------------------------------#define RECVBUFSIZE 1024 //定义接收数据缓冲区大小void process(FILE *fp,int sockfd);main(int argc, char *argv[]){ int fd; //定义SOCKET参量 struct hostent *he; struct sockaddr_in server; //定义服务端SOCKERADDR结构 int portnumber; //定义端口号 if(argc != 3) //判断输入参数 { fprintf(stderr, "Usage:%s hostname portnumber\a\n", argv[0]); exit(1); } if((portnumber=atoi(argv[2])) < 0) { fprintf(stderr,"Usage:%s hostname portnumber\a\n", argv[0]); exit(1); } if((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) //建立SOCKET { fprintf(stderr, "Socket Error:%s\a\n", strerror(errno)); exit(1); } bzero(&server, sizeof(server)); //设置SOCKADDR结构指向服务器 server.sin_family = AF_INET; server.sin_port = portnumber; server.sin_addr.s_addr = inet_addr(argv[1]); if(connect(fd, (struct sockaddr *)(&server), sizeof(struct sockaddr)) == -1)//同服务器建立连接 { fprintf(stderr, "Connect Error:%s\a\n", strerror(errno)); exit(1); } process(stdin,fd); close(fd); //exit(0);} void process(FILE *fp,int sockfd){ char sendline[1024],recvline[1024]; //定义接收发送缓冲区 char buf[1024]; //密文缓冲区 char Key[8]="12345678"; //8位密钥 int numbytes; //定义接收数据长度 printf("Connect to server!\n"); while(fgets(sendline,1024,fp)!=NULL) { des_go(buf,sendline,strlen(sendline),Key,1); printf("%s\n",buf); send(sockfd,buf,strlen(buf),0); //发送数据 if((numbytes=recv(sockfd,recvline,1024,0))==0) //接收数据 { printf("Server Busy!\n"); return; } recvline[numbytes]='\0'; printf("Server's Back: %s",recvline); //close(sockfd); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -