📄 upload.cpp
字号:
#include <fstream>#include <fsclient.h>#include <fcntl.h>#include <stdio.h>#include <unistd.h>#include <sys/ioctl.h>#include <termios.h>#include <string.h>#include <errno.h>#include <iostream>using namespace std;using namespace cb;int upload(const char* file, const char* dst = NULL){ timeval t1, t2; gettimeofday(&t1, 0); ifstream ifs(file); ifs.seekg(0, ios::end); long long int size = ifs.tellg(); ifs.seekg(0); cout << "uploading " << file << " of " << size << " bytes" << endl; File* fh = Sector::createFileHandle(); if (NULL == fh) return -1; char* rname; if (NULL != dst) { rname = (char*)dst; } else { rname = (char*)file; for (int i = strlen(file); i >= 0; -- i) { if ('/' == file[i]) { rname = (char*)file + i + 1; break; } } } char cert[1024]; cert[0] = '\0'; if (fh->open(rname, 2, cert) < 0) { cout << "ERROR: unable to connect to server." << endl; return -1; } if (0 != strlen(cert)) { cout << "file owner certificate: " << cert << endl; ofstream ofs((string(rname) + ".cert").c_str()); ofs << cert << endl; ofs.close(); } bool finish = true; if (fh->upload(file) < 0) finish = false; fh->close(); Sector::releaseFileHandle(fh); if (finish) { gettimeofday(&t2, 0); float throughput = size * 8.0 / 1000000.0 / ((t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) / 1000000.0); cout << "Uploading accomplished! " << "AVG speed " << throughput << " Mb/s." << endl << endl ; } else cout << "Uploading failed! Please retry. " << endl << endl; return 1;}int main(int argc, char** argv){ if ((4 != argc) && (5 != argc)) { cout << "usage: upload <ip> <port> <src file> [dst file]" << endl; return 0; } Sector::init(argv[1], atoi(argv[2])); if (5 == argc) upload(argv[3], argv[4]); else upload(argv[3]); Sector::close(); return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -