六.界面类 CGfxGroupEdit,CGfxOutBarCtrl,CGfxPopupMenu 实现像OutBar和oicq样式的那种滚动分栏的界面类,从Internet,上获得的源代码,通过修改一些接口,使之更适合我的应用。提供了一个漂亮的界面。
TrayIcon类 处理在任务栏上添加.修改.删除图标的类。封闭了Window的API函数
八.全局结构: UserInfo结构存储在线人的信息 FriendState 在好友线信息结构 SaveMsg 消息的存储结构 Sparam 传给线程的参数结构
§4.4服务器端的常量定义 在这里,定义和申明了一些全局函数,常量,宏和全局数据结构,包括用户配置文件名,默认的参数等,总之,修改程序中的参数简单,直接修改头文件就可以了,因为所使用的数值性的参数,都在这里定义了。
#define ResponseMsg "ok" 发送数据时,发回的响应消息标志 #define SETUPFILE "config.ini" 服务器的保存配置文件 #define DEFAULT_SEND_NUM 5 默认的发送端口的数量 #define DEFAULT_DATAS_PWD "" 默认的数据源的访问密码 #define DEFAULT_DSN "IDServer" 默认的数据源名称 #define DEFAULT_UID "" 默认的数据源的访问的UID #define DEFAULT_BROADCAST_PWD "1234567890" 默认的发送广播密码 #define DEFAULT_RECV_PORT_STR "4000,4001,4002" 默认的服务器接受端口号列表 const int ListenSocketNum=10; 最大的接受端口的个数 const int SendSocketNum=15; 最大的发送端口个数 const int TimeWaitForRes=1000; 等待响应的超时时间 const int MaxUserNumber=500; 服务器端最大的用户数 const int UserIdRadix=2000; 用户帐号开始的基数(从这个基数开始增加) const int PersonNumEveryTime=20; 请求查看在线的人时,每次最多发回的人数 const int TimerSpanServer=30000; 服务器的一个运行时间间隔,过一个这个时间间隔,服务器就检查一次,看用户是否仍然在线 const int DataBufLength=500; 发送数据的最大长度 const int MaxResponseMsgLength=20; 最大的响应消息长度 const int CheckBufLength=512; 检查发回响应的一个缓冲区长度
保存在线人的信息的数据结构 typedef struct{ BYTE State; //0 不在线,1 在线,2 隐身 BYTE CanbeAdd; DWORD Id; DWORD IP; DWORD Port; DWORD PhotoId; CString Name; CString Department; }UserOnline;
全局函数 UINT ProcessRecvData(LPVOID param); 处理用户请求的线程服务函数 UINT CheckOnline(LPVOID param); 处理定时检查用户是否仍然在线的线程函数
服务器接受到的消息类型 #define SEND_MSG_TO_FRIEND 1 //CMsg1 index,friendId,myId,msg,time #define FRIEND_IDENTITY_VALIDATE 2 //CMsg1 #define ADD_AS_FRIEND 3 //CMsg1 #define FRIEND_DETAIL 4 //CMsg1 #define FIND_FRIEND_BY_ID 5 //CMsg1 #define DELETE_A_FRIEND 6 //CMsg1
首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/17/17