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

📄 client.cpp

📁 安全文件传输
💻 CPP
字号:
#include "client.h"#include <unistd.h>client::client(char* serverIp):net(serverIp){		net.isConnect();}bool client::serverIsMaxConnect(){		char buf[20];	net.Read(buf);	if(strcmp(buf,"connect"))	{		return false;	}	else return true;}bool client::userLogin(char* userName,char*userPwd){		char errnoBuf[ERRNOBUF];	memset(errnoBuf,0,ERRNOBUF);	net.Write(1,userName,userPwd);	net.Read(errnoBuf);	if(!strcmp(errnoBuf,"errno"))	{			cout << "userName or PassWorld wrong"<<endl;		return false;	}		else 	{			cout << "login now"<< endl;		cout << "get the All metadata from server" << endl;		cout << endl;		cout << endl;		getAllMetadata();//show all metadata;		cout << endl;		cout << endl;				return true;	}}bool client::userRegister(char* userName,char* userPwd){	char errnoBuf[ERRNOBUF];	net.Write(2,userName,userPwd);		net.Read(errnoBuf);	if(!strcmp(errnoBuf,"errno"))	{			cout << "user is exist" << endl;		return false;	}	else	{ 			cout << "user register scceeful"<< endl;		return true;	}}bool client::downLoadFile(char* fileName){	char errnoBuf[ERRNOBUF];	memset(errnoBuf,0,ERRNOBUF);	net.Write(4,fileName);	net.Read(errnoBuf);		if(!strcmp(errnoBuf,"errno"))	{		cout << "downLoad file is not exit" << endl;		return false;	}	else 	{			cout <<"ready downLoad now"<< endl;			 unsigned int len =0;        unsigned int fileTotolSize =0;        unsigned int dataSize = 0;        char dataBuf[DATAMAXBUF];         int status;        ofstream outfile(fileName);                while(1)                {                        memset(dataBuf,0,DATAMAXBUF);                        net.dataRead(status,dataBuf,dataSize);                        if( status == 1)                        {                                fileTotolSize = dataSize;                        }                        else if(status == 2)                        {                                outfile << dataBuf;                                cout << dataBuf << endl;                                len += dataSize;                        }                        else if(status == 3)                        {                                outfile.close();                                break;                        }                }		return true;	}}bool client::upLoadFile(char* fileName,char* fileTime,unsigned int fileSize){		char errnoBuf[ERRNOBUF];	memset(errnoBuf,0,ERRNOBUF);	net.Write(3,fileName,fileTime,&fileSize);	net.Read(errnoBuf);	if(!strcmp(errnoBuf,"errno"))	{			cout<< "the file is exist" << endl;		return false;	}	else	{			cout <<"ready to uploadfile"<< endl; 				char dataBuf[DATAMAXBUF];	ifstream infile(fileName);	unsigned int dataLen;			net.dataWrite(1,fileName,fileSize);		while(1)		{				memset(dataBuf,0,DATAMAXBUF);			infile.getline(dataBuf,DATAMAXBUF-1);			dataLen =strlen(dataBuf);			dataBuf[dataLen] = '\n';			dataBuf[dataLen+1] ='\0';			if(!infile.eof())			{				net.dataWrite(2,dataBuf,dataLen+1);				cout << dataBuf;			}			else 			{					net.dataWrite(3,dataBuf,dataLen);					infile.close();				break;			}//			sleep(1);		}		return true;			 			}}char** client::getAllMetadata(){		char fileName[20];	char fileTime[20];	unsigned int fileSize;	while(1)	{		net.Read(fileName,fileTime,fileSize);		if(fileSize == 0&& !strcmp(fileName,"0")&&!strcmp(fileTime,"0"))		{			break;		}		else cout <<"fileName: "<< fileName <<" fileTime: "<< fileTime <<" fileSize:  "<< fileSize<<endl;	}}

⌨️ 快捷键说明

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