⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iocrclient.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 H
字号:
/*********************************************************************

			iocrClient(I/O Completion Routine Client)

	Copyright (C) 2003.12.03 INU Corp. All Rights Reserved.


	吝酶 涝免仿俊 Callback窃荐甫 捞侩茄 努扼捞攫飘 匙飘亏葛碘

	累己磊:	炼悼泅(Cobby92@hotmail.com)
	荐沥老: 2006.03.03
	荐  沥:	炼悼泅(Cobby92@hotmail.com)

	-檬扁拳
	net_init(), net_setup(), net_startup()
	-秦力
	net_free()
	-皋牢风橇
	net_proc()

/*********************************************************************/
#ifndef __IOCRCLIENT_H
#define __IOCRCLIENT_H


#define NETLOG				"./net_log%d.txt"

#define NET_MAXBUFSIZE		4096
//#define NET_SENDQSIZE		8		//SendQueueSize = max_sockcnt * NET_SENDQSIZE
#define NET_SENDQSIZE		200		//SendQueueSize = max_sockcnt * NET_SENDQSIZE
#define NET_RECVQSIZE		200		//RecvQueueSize = max_sockcnt * NET_RECVQSIZE
#define NET_CONTEXTQSIZE	416		//ContextQueueSize = max_sockcnt * NET_CONTEXTQSIZE
									//(SendQueueSize + RecvQueueSize) * 2
#define NET_UNKNOWNHEADER	0xFFFFFFFF	//NETHEADER啊 酒囱 庆歹肺 登绢乐绢 皋技瘤甫 盒籍且 荐 绝澜
									//皋技瘤 勤甸矾俊辑 磊眉利栏肺 颇教 & 盒籍
#define NETID_ENCODE		0x7E	//菩哦 蜡瓤己 眉农(庆歹狼 叼内爹捞 救等惑怕)
#define NETID_DECODE		0x7C	//菩哦 蜡瓤己 眉农(庆歹狼 叼内爹捞 场抄惑怕)
#define NET_XORSEED			0x55	//xor mask
#define NET_BEAT_TIME		2800	//匙飘亏楷搬 蜡瓤眉农 埃拜 = 2.8檬
#define NET_PING_TIME		1000	//P2P 俏眉农 埃拜 = 1檬

#define MAIN(l)		((unsigned short)(l))
#define SUB(l)		((unsigned short)(((unsigned int)(l) >> 16) & 0xFFFF))

enum NET_FLAG{
	NET_ADVANCED=0x00000000,	//瘤盔登绰 酒虐咆媚甫 荤侩窍瘤 臼绰促
	NET_COMMON=0x00000007,		//PingPong, 菩哦焊救, 菩哦颇教 殿阑 荤侩茄促.

	USE_NETHEADER=0x00000001,					//泅犁狼 矫胶袍庆歹甫 荤侩窃栏肺结 扁夯利牢 扁瓷 器窃
	USE_SECURITYPACK=0x00000002+USE_NETHEADER,	//菩哦焊救 荤侩(肺拿辑滚埃俊绰 捞扁瓷捞 鞘夸绝澜)
	USE_HEARTBEAT=0x00000004+USE_NETHEADER,		//楷搬捞 谗板绰瘤 犬牢窍扁困茄 林扁利牢 菩哦傈价
	USE_UDPSOCK=0x00000008,						//UDP(C/S侩)
};

//匙飘亏 备悼 棺 秦力***********************
void net_init(int max_sockcnt,											//弥措 努扼捞攫飘 家南
			  int max_peercnt,											//弥措 Peer荐
			  int (*func_output)(const char *log, ...));				//叼滚彪皋技瘤 免仿窃荐

void net_setup(void (*func_connect)(int, char *, unsigned short, void *),		//connect_callback(local_index, addr, port, arg)
			   void (*func_receive)(int, int, unsigned long, char *, unsigned long *, void *),	//receive_callback(local_index, message, err_code, packet, size, arg)
			   void (*func_close)(int, bool, void *),							//close_callback(local_index, normal_exit, arg)
			   void (*func_relay)(void *),										//relay_setup_callback(io_context)
			   void (**func_etc)(void *),								//thread_callback
			   void **param_etc,										//thread_param
			   int cnt_etc);											//thread_count

bool net_startup(unsigned short port_udp);
void net_free();
bool net_info(char *&addr, char *&domain);

//楷搬 棺 楷搬秦力***********************
bool net_connect(char *addr, unsigned short port_tcp, unsigned short port_udp, NET_FLAG flag, DWORD heartbeat, void *arg);
//(normal==true) 郴啊 狼档利栏肺 辑滚客 楷搬阑 谗澜
//(normal==false)厘局 棺 坷幅肺 牢秦 厚沥惑利栏肺 楷搬捞 谗辫
bool net_disconnect(int local_index, bool normal);

//犬厘Thread荤侩矫 捞亥飘惯积(ManualSet)****************
void net_setevent(int id, BOOL set);

//匙飘亏 单捞磐 贸府***********************
void net_proc();

//菩哦 傈价***********************
void p2p_reset(int peer_index);		//秦寸 乔绢客狼 圈戚莫 傈俊 馆靛矫 檬扁拳秦具茄促
bool net_send(int local_index, void *context);
bool p2p_send(void *ioc, unsigned long addr, unsigned short port);	//钮雷阑 公矫窍绊 官肺 歹固菩哦阑 焊辰促

void p2p_begincast(void *context);
bool p2p_broadcast(int peer_index, void *context);
bool p2p_broadrelay(int peer_index, void *ioc, unsigned long addr, unsigned short port);
void p2p_endcast(void *context);
bool p2p_ping(int peer_index);

//副饭捞 辑滚荤侩***********************
bool p2p_relayset(unsigned long addr, unsigned short port,
				  short server_index, short server_userindex,
				  short target_server_index, short target_server_userindex,
				  short target_server_peerindex);
bool p2p_relay(void *ioc, unsigned long addr, unsigned short port);

//菩哦 积己***********************
void *net_message(unsigned int msg);						//菩哦庆歹 积己(main_op)
void *net_message(unsigned short main, unsigned short sub);	//菩哦庆歹 积己(main_op, sub_op)
void *udp_message(int server_index, unsigned long msg);							//udp侩 菩哦庆歹 积己(辑滚俊辑 且寸罐篮 client牢郸胶, main_op)
void *udp_message(int server_index, unsigned short main, unsigned short sub);	//udp侩 菩哦庆歹 积己(辑滚俊辑 且寸罐篮 client牢郸胶, main_op, sub_op)
void *p2p_message(int peer_index, unsigned long msg);							//p2p侩 菩哦庆歹 积己(辑滚俊辑 且寸罐篮 peer牢郸胶, main_op)
void *p2p_message(int peer_index, unsigned short main, unsigned short sub);	//p2p侩 菩哦庆歹 积己(辑滚俊辑 且寸罐篮 peer牢郸胶, main_op, sub_op)
bool net_writedata(void *context, char *data, int size);	//菩哦 单捞磐 静扁(角力肺绰 net_packet窃荐 荤侩)
void net_readdata(char **packet, char *data, int size);		//菩哦 单捞磐 佬扁(角力肺绰 net_data窃荐 荤侩)

template<class type>
bool net_packet(void *context, type *data, int count)		//菩哦 单捞磐 静扁
{
	if(count < 1)	return false;

	return net_writedata(context, (char *)data, sizeof(type)*count);
}

template<class type>
bool net_data(char **packet, type *data, int count)			//菩哦 单捞磐 佬扁
{
	if(count < 1)	return false;

	net_readdata(packet, (char *)data, sizeof(type)*count);
	return true;
}

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -