📄 typedef.h
字号:
#ifndef __TYPEDEF_H__
#define __TYPEDEF_H__
#ifdef _WIN32
#include "winsock2.h"
#include <windows.h>
typedef unsigned int TSOCKET;
#else
#include <unistd.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <errno.h>
#include <arpa/inet.h>
#include <pthread.h>
typedef int TSOCKET;
#endif
typedef int TBOOL;
typedef unsigned short TWORD;
typedef unsigned long TDWORD;
typedef unsigned char TBYTE;
typedef unsigned char * TLPBYTE;
typedef void * TPOSITION;
typedef unsigned int TUINT;
typedef const char * TLPCSTR;
typedef char * TLPSTR;
typedef TLPCSTR TLPCTSTR;
typedef TLPSTR TLPTSTR;
typedef long TLONG;
typedef TLONG * TLPLONG;
//typedef HMODULE THMODULE;
typedef void* TLPVOID;
typedef long TLRESULT;
//常量定义
#define TBEFORE_START_POSITION ((TPOSITION)-1L)
#define INVALIDATE_SOCKET (TSOCKET)(~0)
#define TMAX_PATH 260
#define TTRUE 1
#define TFALSE 0
#define TNULL 0
//事件定义
#define CLIENT_CONNECTED 1
#define CLIENT_DISCONNECTED 2
#define SERVER_DISCONNECTED 3
#define DATA_RECEIVED 4
#define DATA_SEND_SUCCESS 5
#define DATA_SEND_FAILED 6
#define CLINENT_TIMEOUT 7
typedef struct _tagCOMMUNICATEEVENT
{
TDWORD dwStructSize;
TDWORD dwEventID;
TDWORD dwEventStatus;
TLPVOID lpData;
TDWORD dwDataSize;
TUINT nDataID;
TDWORD dwReserved1;
TDWORD dwReserved2;
} TCOMMUNICATEEVENT, *TPCOMMUNICATEEVENT;
/***********************************************/
/* 用于通讯模块与上层通讯用的COMMUNICATEEVENT结构说明
struct COMMUNICATEEVENT
{
unsigned long dwStructSize;
unsigned long dwEventID;
unsigned long dwEventStatus;
void * lpData; //数据块指针
unsigned long dwDataSize; //数据块长度
unsigned int nDataID; //数据块标识
unsigned long dwReserved1; //保留
unsigned long dwReserved2; //保留
};
其中dwStructSize用于保存结构的大小,以字节数为单位。随着软件的升级,COMMUNICATEEVENT
结构可能会发生变化,应用层可以通过此成员判断COMMUNICATEEVENT结构的版本,根据版本不同作出
不同的处理。dwEventID用于标识事件的类型,根据客户端与服务端的不同,有不同的定义,目前定的
事件类别如下表:
事件ID 事件值 服务端/客户端事件 说明
CLIENT_CONNECTED 1 服务端 当服务端成功接收到来自客户端的连接请求时,向上层应用发送此事件,通知有客户连接上来。其中在成员dwEventStatus中上报服务端为此客户端分配的客户端标识ClientID。
CLIENT_DISCONNECTED 2 服务端 当客户端主动要求与服务端断开连接时,通讯服务端接收到了来自客户端的断开连接请求后,向上层应用发送此事件,通知上层用户已经断开连接。
SERVER_DISCONNECTED 3 客户端 当服务端主动断开与服务端连接时,通讯客户端接收到了来自服务端的断开连接请求后,向上层应用发送此事件,通知上层已经断开了与服务端的连接。
DATA_RECEIVED 4 服务端/客户端 由通讯层通知上层数据收到了来自通讯对方的数据,需要处理数据。其中在成员lpData中指出数据缓冲区的地址,在成员dwDataSize中传回数据区的数据长度值。
DATA_SEND_SUCCESS 5 服务端/客户端 通讯模块将数据成功发送给对方后,向上层发送此事件,表明上层应用用AddTo或SendOut调用要求发送的数据已经由通讯模块成功发送出去。其中成员变量nDataID中保存的时此次成功发送数据的标识,此标识是在AddTo或SendOut的最后一个参数中返回给上层应用的。
DATA_SEND_FAILED 6 服务端/客户端 通讯模块发送数据给对方失败后,向上层发送此事件,表明上层应用调用AddTo或SendOut调用发送的数据发送失败。其中成员变量nDataID中保存的时此次发送失败的数据的标识,此标识是在AddTo或SendOut的最后一个参数中返回给上层应用的。
CLINENT_TIMEOUT 7 服务端 服务端的工作线程超时后,通讯模块将向上层报告此事件。
*/
#endif // __TYPEDEF_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -