开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 18700|回复: 73
收起左侧

[易语言纯源码] 【服务器/客户端免费开源+详细代码解释】想学服务器客户端组建的进(申精)

[复制链接]
结帖率:100% (1/1)
发表于 2014-3-22 21:56:58 | 显示全部楼层 |阅读模式   山东省淄博市
分享源码
界面截图:
是否带模块: -
备注说明: -
本帖最后由 宇智波·佐助 于 2014-3-30 13:49 编辑

这个程序的源码我曾经公开过,但是有许多易友加我好友问了我许多问题,所以,今天把这些问题整理了一下,再加上源码一同免费送出。那是我进入精易是发的第一个帖子,得到了大家的肯定,很高兴。
原帖地址:http://bbs.125.la/thread-13688674-1-1.html
好了,下面我开始对源码一些问题进行详细的解释。
首先是服务器端的源代码。

  1. .版本 2.支持库 iext
  2. .局部变量 计次, 整数型
  3. .局部变量 分割后, 文本型, , "0"
  4. .局部变量 取出名, 文本型
  5. .局部变量 取出密码, 整数型
  6. 接收的数据 = 服务器数据.取回数据 ()
  7. .如果真 (取文本左边 (到文本 (接收的数据), 1) = “<”)
  8.     编辑框数据传输.加入文本 (#换行符 + “发送主机#端口:” + 服务器数据.取回客户 () + #换行符 + #换行符 + “发送时间:” + 到文本 (取现行时间 ()) + #换行符 + #换行符 + 到文本 (服务器数据.取回数据 ()) + #换行符 + “----------------------------------------------”)
  9.     .计次循环首 (超级列表框1.取表项数 (), 计次)
  10.         服务器数据.发送数据 (超级列表框1.取标题 (计次 - 1, 1), 接收的数据, )
  11.         计次 = 计次 + 1
  12.     .计次循环尾 ()
  13. .如果真结束
复制代码
这段代码是在服务器数据到达事件下的。四个变量,其中一个数组变量,用来存放客户端发过来的数据分割后的文本型数组。首先服务器要取回数据,用一个变量取回的数据来存放取回的数据,数据取回之后,由于客户端在向服务器发送数据的时候,会加上识别符,用来让服务器识别这段数据的用途以及类别等,比如这里的识别符就是“<”.这里代码的功能其实就是一个日志的功能,把去回来的数据在编辑框中实时的显示出来。下面有一个计次循环,因为服务器不只是和一个客户端进行通信,是和所有的客户端通信,所以服务器在接收到一个客户端发来的数据库之后,还要向所有在线的客户端转发这些数据,用的就是这个计次循环来实现的。



这是账号密码验证模块,主要的功能就是在登陆的时候进行账号密码的验证。其实只要就是进行数据库的读取和编辑框中的内容进行对比,从而判断账号密码是否正确,应该是比较简单的。

  1. .版本 2
  2. .支持库 iext
  3. 状态条1.置文本 (1, “客户” + “” + 地址端口 + “” + “离开......”)
  4. 客户数量 = 客户数量 - 1超级列表框1.删除表项 (客户数量)
  5. 编辑框客户连接.加入文本 (#换行符 + “客户端” + 服务器数据.取回客户 () + “与服务器断开连接” + #换行符 + #换行符 + “离开时间:” + 到文本 (取现行时间 ()) + #换行符 + #换行符 + “----------------------------------------------”)
复制代码
这段代码是在客户离开事件下的。第一行代码,是当客户离开是,在状态条中显示哪个客户离开了,同时,记录服务器在线数量的全局变量也要做相应的减法,从而保证准确性。在超级列表框中的离开客户的信息也应该删除,同时,在日志功能的编辑框中实时加入客户离开的信息。

  1. .版本 2
  2. .支持库 iext
  3. 客户数量 = 客户数量 + 1
  4. 超级列表框1.刷新显示 ()
  5. 时钟刷新人数.时钟周期 = 1000
  6. 状态条1.置文本 (1, “客户” + “” + 地址端口 + “” + “进入......”)
  7. 分割 = 分割文本 (服务器数据.取回客户 (), “:”, )
  8. 地址端口 = 服务器数据.取回客户 ()
  9. 编辑框客户连接.加入文本 (“有客户端连接到服务器” + #换行符 + #换行符 + “详细信息:” + 服务器数据.取回客户 () + #换行符 + #换行符 + “服务器已允许进入,连接成功!” + #换行符 + #换行符 + 到文本 (取现行时间 ()) + #换行符 + “----------------------------------------------”)
  10. 超级列表框1.插入表项 (-1, 到文本 (客户数量), , , , )
  11. 超级列表框1.置标题 (客户数量 - 1, 1, 地址端口)
  12. 超级列表框1.置标题 (客户数量 - 1, 3, 到文本 (取现行时间 ()))
  13. 超级列表框1.置标题 (客户数量 - 1, 4, 到文本 (通信测试 (分割 [1], )))
复制代码
这是客户进入事件下的代码。首先,全局变量客户数量加1.状态条显示客户进入的消息提示。然后把取回客户的信息进行文本分割后,在日志功能的编辑框中进行实时的显示。而超级列表框加入进入服务器客户的相应的信息,进行添加表象,指标题等操作。
下面是客户端代码的分析。

  1. .版本 2
  2. .支持库 OPenGL
  3. 置外形图片 (底图, #品红)
  4. .如果真 (文件是否存在 (“C:\HWltskh\yonghuxinxi.edb”) = 假)
  5.     .如果真 (信息框 (“错误:数据库不存在或遍历失败!” + #换行符 + “          请 重 新 打 开 程 序 !”, 0, “提示”) = #确认钮)
  6.         销毁 ()
  7.     .如果真结束
  8. .如果真结束
  9. .如果真 (文件是否存在 (“C:\HWltskh\duankoudizhi.ini”) = 假)
  10.     创建目录 (“C:\HWltskh”)
  11.     写配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “dizhi”, “172.26.1.237”)
  12.     写配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “duankou”, “2013”)
  13. .如果真结束
  14. 用户信息 [1].名称 = “用户名”
  15. 用户信息 [1].类型 = #文本型
  16. 用户信息 [2].名称 = “密码”
  17. 用户信息 [2].类型 = #文本型
  18. .如果真 (文件是否存在 (“C:\HWltskh\yonghuxinxi.edb”) = 假)
  19.     .如果真 (创建 (“C:\HWltskh\yonghuxinxi.edb”, 用户信息) = 假)
  20.         信息框 (“数据库创建失败,” + 取错误信息文本 (), 0, “提示”)
  21.     .如果真结束
  22. .如果真结束
  23. .如果真 (打开 (“C:\HWltskh\yonghuxinxi.edb”, , , , , , ) = 假)
  24.     .如果真 (信息框 (“数据库状态不正常!” + 取错误信息文本 (), 0, “提示”) = #确认钮)
  25.         销毁 ()
复制代码
这是启动窗口创建完毕的代码。因为我这里的启动窗口也就是登陆窗口是模仿的QQ的登陆窗口,所以要保证模仿的比较像,用到的就是置外形图片,然后下面的如果命令是用来进行环境完整性的判断的,判断数据库是否存在,因为那些客户的账号密码数据都是存放在数据库中的,所以如果没有数据库的话,下面的一切都是无法进行的,所以这个检测是很必要的。还有就是配置信息,也是不能缺少的 ,都要进行检测。全部检测成功之后,就打开数据库,进行数据的读取。

  1. .版本 2
  2. 登陆变量 = “0”
  3. 到首记录 ()
  4. .计次循环首 (取记录数 (), 登陆计次)
  5.     .如果真 (读 (#用户名) = 登陆用户名 且 读 (#密码) = 登陆密码)
  6.         登陆变量 = “100”
  7.         跳出循环 ()
  8.     .如果真结束
  9.     跳过 ()
  10. .计次循环尾 ()
  11. .如果 (登陆变量 = “100”)
  12.     返回 (假)
  13. .否则
  14.     返回 (真)
复制代码

  1. .版本 2
  2. 服务器地址 = 读配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “dizhi”, )
  3. 端口 = 到整数 (读配置项 (“C:\HWltskh\duankoudizhi.ini”, “dizhi”, “duankou”, ))
  4. 登陆用户名 = 编辑框账号.内容
  5. 登陆密码1 = 编辑框登陆密码.内容
  6. 写配置项 (“C:\HWltskh\dlyh.ini”, “dengluyonghu”, “yonghuming”, 登陆用户名)
  7. 写配置项 (“C:\HWltskh\dlyh.ini”, “dengluyonghu”, “yonghumima”, 登陆密码1)
  8. .如果 (用户密码账号验证 (登陆用户名, 登陆密码1) = 真)
  9.     信息框 (“用户名或密码错误”, #警告图标, “提示”)
  10.     编辑框账号.内容 = “”
  11.     编辑框登陆密码.内容 = “”
  12.     编辑框账号.获取焦点 ()
  13. .否则
  14.     .如果 (客户_数据.连接 (服务器地址, 端口) = 真)
  15.         载入 (聊天主窗口, , 真)
  16.         _启动窗口.可视 = 假
  17.     .否则        ' 这里写连接失败后在聊天窗口的反馈、
  18.         信息框 (“服务器连接失败”, #错误图标, “错误”)
  19.     .如果结束
复制代码
这是登陆按钮被点击事件下,首先读取配置项信息。读取出服务器的地址以及端口信息,以便进行与服务器的通讯,然后就是写配置项,把登陆过的账号和密码存放在INI中,以便查询。登陆成功之后,载入聊天窗口·····

写的好累···今天就分析到这里吧·····如果还有不明白的,加Q问我···2010108288


谢谢您的支持!

百度网盘下载地址:http://pan.baidu.com/s/1sjJHLBR备份地址:http://urlxf.qq.com/?yuyuaim 资源.zip (849.5 KB, 下载次数: 275)
服务器界面.jpg
客户端界面.jpg
客户端聊天界面.jpg
客户进入.jpg
客户离开.jpg
客户聊天.jpg
客户数据到达.jpg
配置项.jpg
数据到达.jpg
用户注册界面.jpg

评分

参与人数 5好评 +4 精币 +7 收起 理由
乱世皇朝 + 1 感谢分享,很给力!~
dszbox471 + 1 奉上小小红包希望笑纳
痞子大叔 + 1 + 2 奉上小小红包希望笑纳
牛肉老友粉 + 1 + 2 奉上小小红包希望笑纳
精易客服 + 1 + 2 精彩文章希望继续努力

查看全部评分


本帖被以下淘专辑推荐:

发表于 2023-9-19 07:18:22 高大上手机用户 | 显示全部楼层   广西壮族自治区南宁市
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2023-6-13 18:25:11 | 显示全部楼层   新疆维吾尔自治区巴音郭楞蒙古自治州
易语言自带的服务器客户Duan传个数据好慢。
回复 支持 反对

使用道具 举报

发表于 2023-6-2 20:35:06 | 显示全部楼层   河南省郑州市
学习一下啊
回复 支持 反对

使用道具 举报

发表于 2023-5-21 02:43:27 | 显示全部楼层   河南省平顶山市
10年了百du,qq连接都飞灰湮灭,唯一的币也没有了,刷完这一波睡觉
回复 支持 反对

使用道具 举报

发表于 2023-5-21 02:36:40 | 显示全部楼层   河南省平顶山市
谢谢分享
回复 支持 反对

使用道具 举报

发表于 2022-11-8 22:48:26 | 显示全部楼层   北京市北京市
这个太厉害了,感谢楼主分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2022-7-20 12:39:16 | 显示全部楼层   河南省郑州市
没精币了额               
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2022-7-20 12:35:03 | 显示全部楼层   河南省郑州市
支持                                         
回复 支持 反对

使用道具 举报

发表于 2022-6-7 10:20:50 | 显示全部楼层   广东省广州市
好东西!
回复 支持 反对

使用道具 举报

发表于 2022-3-1 19:06:06 | 显示全部楼层   浙江省宁波市
好东四   谢谢楼猪
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表