📄 client.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 + -