This commit is contained in:
2025-09-24 10:53:28 +08:00
commit f8e4df77fb
856 changed files with 140098 additions and 0 deletions

56
include/MySocket.h Normal file
View File

@@ -0,0 +1,56 @@
// 本文件主要用于接受发送端的连接,数据的收发以及处理等等功能
#pragma once
#include <iostream>
#include <string>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
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(); // 关闭套接字
};