36 lines
832 B
C++
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;
|
|
};
|