客户端使用了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
关注
打赏
