客户端使用了Windows Socket提供的API,支持上传、下载、删除、查看文件,断点续传,二进制/ASCII模式切换,被动模式切换,记录操作日志等功能。
代码包含的类如下:
①MySocket类,对SOCKET进行了简单的封装
1 //对winsock SOCKET的封装 2 class MySocket 3 { 4 public: 5 MySocket(); 6 //~MySocket(); 7 //重载向SOCKET类型转换的运算符 8 operator SOCKET() const; 9 //设置地址信息 10 void SetAddrInfo(std::string host, int port); 11 bool Connect(); 12 //bool Disconnect(); 13 bool Create(int af = AF_INET, int type = SOCK_STREAM, int protocol = IPPROTO_TCP); 14 bool Close(); 15 //获取主机ip 16 std::string GetHostIP() const; 17 //获取主机端口 18 int GetPort() const; 19 private: 20 SOCKET sock; 21 SOCKADDR_IN addr_in; //记录连接的服务器的地址信息 22 bool conn_flag; //判断是否已连接 23 };
②Record类,存储了客户端与服务器的交互信息的数据结构
1 //枚举类型,CMD代表命令信息,RES代表响应信息 2 enum log_type { CMD = 1, RES = 2 }; 3 4 //与服务器的交互信息 5 class Record 6 { 7 friend std::ostream & operator关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?