📄 px_rs_module_ls.h
字号:
#ifndef _PX_RS_MODULE_LS_
#define _PX_RS_MODULE_LS_
/* must been first include begin */
#include "..\ProjectX_Common\ProjectX_Copyright.h"
#include "..\ProjectX_Common\ProjectX_Common.h"
/* must been first include end */
/* std and common include */
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
typedef struct tagPx_RS_Ls_Info {
CRITICAL_SECTION * cts_state;
CRITICAL_SECTION * cts_recv;
CRITICAL_SECTION * cts_send;
int size_recv_append;
int size_send_append;
int last_heartbreak_frame;
int last_heartbreak;
int last_frame_handled;
unsigned int ip;
u_short port;
byte state;
byte send_sign;
byte version_sign;
SOCKET s_client;
char * recv_buf;
char * precv_start;
char * precv_end;
char * precv_append;
char * send_buf;
char * psend_start;
char * psend_end;
char * psend_append;
}PX_RS_LS_INFO, * LPPX_RS_LS_INFO;
typedef struct tagPx_RS_Ls_Per_Data{
PX_RS_LS_INFO * pci;
}PX_RS_LS_PER_DATA, * LPPX_RS_LS_PER_DATA;
typedef struct tagPx_RS_Ls_Io_Data {
OVERLAPPED overlapped;
char * buf;
int size;
byte io_type;
WSABUF wsabuf;
}PX_RS_LS_IO_DATA, * LPPX_RS_LS_IO_DATA;
typedef struct tagPx_RS_Ls_Redirect {
PX_RS_LS_PER_DATA * per_data;
PX_RS_LS_IO_DATA * io_recv;
PX_RS_LS_IO_DATA * io_send;
}PX_RS_LS_REDIRECT, * LPPX_RS_LS_REDIRECT;
typedef struct tagPx_RS_Ls_Key {
byte state;
PX_RS_CL_REDIRECT * prdi;
}PX_RS_LS_KEY, * LPPX_RS_LS_KEY;
typedef struct tagPx_RS_Ls_Version {
char version[MAX_VERSION_LEN];
char md5code[MAX_MD5CODE_LEN];
char antihackcode[MAX_AHCODE_LEN];
BOOL accept;
}PX_RS_LS_VERSION, * LPPX_RS_LS_VERSION;
void init_module_ls(void);
void close_module_ls(void);
void free_module_ls_resource(void);
BOOL init_ls_key_new(PX_RS_LS_KEY * plk);
BOOL init_ls_key_reuse(PX_RS_LS_KEY * plk);
void close_speicy_ls(PX_RS_LS_INFO * pli);
void set_module_ls_state(byte state);
void set_specify_ls_state(PX_RS_LS_INFO * pli,byte state);
void set_specify_ls_send_state(PX_RS_LS_INFO * pli,byte state);
BOOL valid_module_ls_state(byte state);
BOOL valid_specify_ls_state(PX_RS_LS_INFO * pli,byte state);
void add_buf_to_specify_ls_recv_buf(PX_RS_LS_INFO * pli,int size,char * packet);
void add_buf_to_specify_ls_send_buf(PX_RS_LS_INFO * pli,int size,char * packet);
void update_specify_ls_send_buf(PX_RS_LS_INFO * pli,int size);
int get_specify_ls_send_buf(PX_RS_LS_INFO * pli,char * packet);
void tidy_specify_ls_send_buf(PX_RS_LS_INFO * pli);
void tidy_specify_ls_recv_buf(PX_RS_LS_INFO * pli);
void close_module_ls_all_connect(void);
void post_quit_module_ls_thread(void);
void handle_module_ls_heartbreak(void);
void handle_module_ls_reuse(void);
void module_cl_handle_event_rs_need_close(void);
void handle_all_logic_server_recv_buf(void);
void handle_specify_logic_server_recv_buf(PX_RS_LS_INFO * pli);
void handle_specify_logic_server_packet(PX_RS_LS_INFO * pli,WORD mc,WORD size,char * packet)
void module_ls_packet_request_connect(PX_RS_LS_INFO * pli,WORD size,char * packet);
DWORD WINAPI module_ls_accept_thread(PVOID paparm);
DWORD WINAPI module_ls_iocp_thread(PVOID paparm);
#endif //_PX_RS_MODULE_LS_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -