一个 void * 的指针,指针指向的地方包含了建链之后的 session 信息。
typedef void *HDC_SESSION;
struct hdcClientSession { struct hdcSession session; /* client 端 session 信息 */ bool alloc; /* client 端 session 是否已经在使用中;true 表示被使用中,false 表示没有被使用中 */ INT32 node; /* 当前设备所在的节点数;目前只支持一个设备,默认传 0 */ INT32 devid; /* host侧看到的device侧的设备ID号 */ UINT32 portno; /* 目前未使用 */ UINT32 servaddr; /* 目前未使用 */ struct hdcClientHead *client; /* client信息,请参见HDC_CLIENT */ };
struct hdcServerSession { struct hdcSession session; /* server 端 session 信息 */ UINT32 deviceId; /* */ struct sockaddr_in clientAddr; /* socket模式下使用,记录client地址 */ struct hdcServerHead *server; /* server信息,请参见HDC_SERVER */ };
struct hdcSession { UINT32 magic; /* hdc 魔术字,防止被踩 */ UINT32 device_id; /* 当前设备的 device id 号 */ INT32 sockfd; /* 当前 session 通道的 fd 号 */ UINT32 type; /* 当前 session 通道是 client 还是 server;0 是 server,1 是 client */ mmProcess bind_fd; /* 当前进程绑定的底层字符设备的 fd 号 */ };