|
分享源码
界面截图: |
|
是否带模块: |
- |
备注说明: |
- |
本帖最后由 宇智波·佐助 于 2014-3-30 13:49 编辑
这个程序的源码我曾经公开过,但是有许多易友加我好友问了我许多问题,所以,今天把这些问题整理了一下,再加上源码一同免费送出。那是我进入精易是发的第一个帖子,得到了大家的肯定,很高兴。
原帖地址:http://bbs.125.la/thread-13688674-1-1.html
好了,下面我开始对源码一些问题进行详细的解释。
首先是服务器端的源代码。
- .版本 2.支持库 iext
- .局部变量 计次, 整数型
- .局部变量 分割后, 文本型, , "0"
- .局部变量 取出名, 文本型
- .局部变量 取出密码, 整数型
- 接收的数据 = 服务器数据.取回数据 ()
- .如果真 (取文本左边 (到文本 (接收的数据), 1) = “<”)
- 编辑框数据传输.加入文本 (#换行符 + “发送主机#端口:” + 服务器数据.取回客户 () + #换行符 + #换行符 + “发送时间:” + 到文本 (取现行时间 ()) + #换行符 + #换行符 + 到文本 (服务器数据.取回数据 ()) + #换行符 + “----------------------------------------------”)
- .计次循环首 (超级列表框1.取表项数 (), 计次)
- 服务器数据.发送数据 (超级列表框1.取标题 (计次 - 1, 1), 接收的数据, )
- 计次 = 计次 + 1
- .计次循环尾 ()
- .如果真结束
复制代码 这段代码是在服务器数据到达事件下的。四个变量,其中一个数组变量,用来存放客户端发过来的数据分割后的文本型数组。首先服务器要取回数据,用一个变量取回的数据来存放取回的数据,数据取回之后,由于客户端在向服务器发送数据的时候,会加上识别符,用来让服务器识别这段数据的用途以及类别等,比如这里的识别符就是“<”.这里代码的功能其实就是一个日志的功能,把去回来的数据在编辑框中实时的显示出来。下面有一个计次循环,因为服务器不只是和一个客户端进行通信,是和所有的客户端通信,所以服务器在接收到一个客户端发来的数据库之后,还要向所有在线的客户端转发这些数据,用的就是这个计次循环来实现的。
这是账号密码验证模块,主要的功能就是在登陆的时候进行账号密码的验证。其实只要就是进行数据库的读取和编辑框中的内容进行对比,从而判断账号密码是否正确,应该是比较简单的。
- .版本 2
- .支持库 iext
- 状态条1.置文本 (1, “客户” + “” + 地址端口 + “” + “离开......”)
- 客户数量 = 客户数量 - 1超级列表框1.删除表项 (客户数量)
- 编辑框客户连接.加入文本 (#换行符 + “客户端” + 服务器数据.取回客户 () + “与服务器断开连接” + #换行符 + #换行符 + “离开时间:” + 到文本 (取现行时间 ()) + #换行符 + #换行符 + “----------------------------------------------”)
复制代码 这段代码是在客户离开事件下的。第一行代码,是当客户离开是,在状态条中显示哪个客户离开了,同时,记录服务器在线数量的全局变量也要做相应的减法,从而保证准确性。在超级列表框中的离开客户的信息也应该删除,同时,在日志功能的编辑框中实时加入客户离开的信息。
- .版本 2
- .支持库 iext
- 客户数量 = 客户数量 + 1
- 超级列表框1.刷新显示 ()
- 时钟刷新人数.时钟周期 = 1000
- 状态条1.置文本 (1, “客户” + “” + 地址端口 + “” + “进入......”)
- 分割 = 分割文本 (服务器数据.取回客户 (), “:”, )
- 地址端口 = 服务器数据.取回客户 ()
- 编辑框客户连接.加入文本 (“有客户端连接到服务器” + #换行符 + #换行符 + “详细信息:” + 服务器数据.取回客户 () + #换行符 + #换行符 + “服务器已允许进入,连接成功!” + #换行符 + #换行符 + 到文本 (取现行时间 ()) + #换行符 + “----------------------------------------------”)
- 超级列表框1.插入表项 (-1, 到文本 (客户数量), , , , )
- 超级列表框1.置标题 (客户数量 - 1, 1, 地址端口)
- 超级列表框1.置标题 (客户数量 - 1, 3, 到文本 (取现行时间 ()))
- 超级列表框1.置标题 (客户数量 - 1, 4, 到文本 (通信测试 (分割 [1], )))
复制代码 这是客户进入事件下的代码。首先,全局变量客户数量加1.状态条显示客户进入的消息提示。然后把取回客户的信息进行文本分割后,在日志功能的编辑框中进行实时的显示。而超级列表框加入进入服务器客户的相应的信息,进行添加表象,指标题等操作。
下面是客户端代码的分析。
- .版本 2
- .支持库 OPenGL
- 置外形图片 (底图, #品红)
- .如果真 (文件是否存在 (“C:\HWltskh\yonghuxinxi.edb”) = 假)
- .如果真 (信息框 (“错误:数据库不存在或遍历失败!” + #换行符 + “ 请 重 新 打 开 程 序 !”, 0, “提示”) = #确认钮)
- 销毁 ()
- .如果真结束
- .如果真结束
- .如果真 (文件是否存在 (“C:\HWltskh\duankoudizhi.ini”) = 假)
- 创建目录 (“C:\HWltskh”)
- 写配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “dizhi”, “172.26.1.237”)
- 写配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “duankou”, “2013”)
- .如果真结束
- 用户信息 [1].名称 = “用户名”
- 用户信息 [1].类型 = #文本型
- 用户信息 [2].名称 = “密码”
- 用户信息 [2].类型 = #文本型
- .如果真 (文件是否存在 (“C:\HWltskh\yonghuxinxi.edb”) = 假)
- .如果真 (创建 (“C:\HWltskh\yonghuxinxi.edb”, 用户信息) = 假)
- 信息框 (“数据库创建失败,” + 取错误信息文本 (), 0, “提示”)
- .如果真结束
- .如果真结束
- .如果真 (打开 (“C:\HWltskh\yonghuxinxi.edb”, , , , , , ) = 假)
- .如果真 (信息框 (“数据库状态不正常!” + 取错误信息文本 (), 0, “提示”) = #确认钮)
- 销毁 ()
复制代码 这是启动窗口创建完毕的代码。因为我这里的启动窗口也就是登陆窗口是模仿的QQ的登陆窗口,所以要保证模仿的比较像,用到的就是置外形图片,然后下面的如果命令是用来进行环境完整性的判断的,判断数据库是否存在,因为那些客户的账号密码数据都是存放在数据库中的,所以如果没有数据库的话,下面的一切都是无法进行的,所以这个检测是很必要的。还有就是配置信息,也是不能缺少的 ,都要进行检测。全部检测成功之后,就打开数据库,进行数据的读取。
- .版本 2
- 登陆变量 = “0”
- 到首记录 ()
- .计次循环首 (取记录数 (), 登陆计次)
- .如果真 (读 (#用户名) = 登陆用户名 且 读 (#密码) = 登陆密码)
- 登陆变量 = “100”
- 跳出循环 ()
- .如果真结束
- 跳过 ()
- .计次循环尾 ()
- .如果 (登陆变量 = “100”)
- 返回 (假)
- .否则
- 返回 (真)
复制代码
- .版本 2
- 服务器地址 = 读配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “dizhi”, )
- 端口 = 到整数 (读配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “duankou”, ))
- 登陆用户名 = 编辑框账号.内容
- 登陆密码1 = 编辑框登陆密码.内容
- 写配置项 (“C:\HWltskh\dlyh.ini”, “dengluyonghu”, “yonghuming”, 登陆用户名)
- 写配置项 (“C:\HWltskh\dlyh.ini”, “dengluyonghu”, “yonghumima”, 登陆密码1)
- .如果 (用户密码账号验证 (登陆用户名, 登陆密码1) = 真)
- 信息框 (“用户名或密码错误”, #警告图标, “提示”)
- 编辑框账号.内容 = “”
- 编辑框登陆密码.内容 = “”
- 编辑框账号.获取焦点 ()
- .否则
- .如果 (客户_数据.连接 (服务器地址, 端口) = 真)
- 载入 (聊天主窗口, , 真)
- _启动窗口.可视 = 假
- .否则 ' 这里写连接失败后在聊天窗口的反馈、
- 信息框 (“服务器连接失败”, #错误图标, “错误”)
- .如果结束
复制代码 这是登陆按钮被点击事件下,首先读取配置项信息。读取出服务器的地址以及端口信息,以便进行与服务器的通讯,然后就是写配置项,把登陆过的账号和密码存放在INI中,以便查询。登陆成功之后,载入聊天窗口·····
写的好累···今天就分析到这里吧·····如果还有不明白的,加Q问我···2010108288
谢谢您的支持!
百度网盘下载地址:http://pan.baidu.com/s/1sjJHLBR备份地址:http://urlxf.qq.com/?yuyuaim
资源.zip
(849.5 KB, 下载次数: 275)
|
评分
-
查看全部评分
本帖被以下淘专辑推荐:
- · 精品资源区|主题: 158, 订阅: 24
- · .|主题: 19, 订阅: 0
|