GrabBag/VrNets/UDPServer/Inc/IYUDPServer.h

64 lines
1.1 KiB
C
Raw Normal View History

2026-07-11 15:49:14 +08:00
#pragma once
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <thread>
#include <functional>
#include <chrono>
#ifdef _WIN32
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <WinSock2.h>
#pragma comment(lib,"Ws2_32.lib")
#pragma comment(lib, "UDPServer.lib")
#else
#include <sys/socket.h>
#include <netinet/in.h>
#endif
typedef std::function<void(const sockaddr_in clientPeer, const char* pData, const int nLen)> UdpRecvDataFunc;
class IYUDPServer
{
public:
virtual ~IYUDPServer() = default;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
static bool VrCreateUDPServer(IYUDPServer** ppIUDPServer);
/**
* <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @brief Init
* @return
*/
virtual int Init(const int nPort) = 0;
/**
* <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @brief StartUDPServer
* @return
*/
virtual int StartUDPServer(UdpRecvDataFunc pRecvDataFunc, bool bRecvSelfProtocol) = 0;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @brief StopUDPServer
* @return
*/
virtual int StopUDPServer() = 0;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @brief SendData
* @param pData
* @param nLen
* @return
*/
virtual int SendData(const sockaddr_in clientPeer, const char* pData, const int nLen) = 0;
};