init
This commit is contained in:
56
include/MySocket.h
Normal file
56
include/MySocket.h
Normal 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(); // 关闭套接字
|
||||
};
|
Reference in New Issue
Block a user