wsproxy/server/wsproxy/kcpsession.h
aozhiwei 06d1314f29 1
2023-04-23 18:44:57 +08:00

36 lines
832 B
C++

#pragma once
#include <a8/udpsession.h>
#include <a8/udplistener.h>
#include "ikcp.h"
class KcpSession
{
public:
void Init(int socket_handle);
void UnInit();
void Update(long long tick);
void SendClientMsg(char* buf, int buf_len);
void OnRecvPacket(a8::UdpPacket* pkt);
const sockaddr_in& GetAddr() const { return remote_addr_; }
void UpdateInput();
int GetSocketHandle() { return socket_handle_; }
long long GetSecretKey() { return secret_key_; }
private:
void DecodePacket(char* buf, int& offset, unsigned int buflen);
private:
long long init_tick_ = 0;
long long secret_key_ = 0;
ikcpcb* kcp_ = nullptr;
int socket_handle_ = 0;
sockaddr_in remote_addr_ = {};
char* recv_buff_ = nullptr;
int recv_bufflen_ = 0;
int max_packet_len_ = 1024 * 64 *2;
};