// 本文件主要用于接受发送端的连接,数据的收发以及处理等等功能 #pragma once #include #include #include #include #include #include using namespace std; // TCP class MySocket { private: int m_server_fd; // 服务端套接字文件描述符 int m_client_fd; // 客户端套接字文件描述符 struct sockaddr_in m_server_addr; // 服务端地址结构体 struct sockaddr_in m_client_addr; // 客户端地址结构体 public: // 构造与析构函数 MySocket(); ~MySocket(); bool InitServer(int port); // 初始化服务端 bool AcceptClient(); // 接受客户端连接 bool SendData(const std::string &data); // 发送数据 bool SendData(const char *data, size_t size); // 发送数据 bool SendLargeData(const string &data, size_t chunkSize); string ReceiveData(); // 接收数据 string ReceiveLargeData(size_t expectedSize, size_t chunkSize);// 接收大数据 void CloseSocket(); // 关闭套接字 void CloseClientSocket(); // 关闭客户端套接字 void CloseServerSocket(); // 关闭服务端套接字 string GetClientIP() { return inet_ntoa(m_client_addr.sin_addr); } // 获取客户端IP地址 int GetClientPort() { return ntohs(m_client_addr.sin_port); } // 获取客户端端口号 }; // UDP class MyUDP { private: int m_sockfd; // UDP套接字文件描述符 struct sockaddr_in m_server_addr; // 对端地址结构体 public: MyUDP(); // 构造函数 ~MyUDP(); // 析构函数 bool InitServer(const string &ip, int port); // 初始化UDP服务端 bool SendData(const std::string &data); // 发送数据 string ReceiveData(); // 接收数据 void CloseSocket(); // 关闭套接字 };