书香 发表于 2023-5-22 02:45

【tcp—聊天工具的开发】

本帖最后由 书香 于 2024-2-10 04:40 编辑

源码下载:

前面我们已经学习了tcp的相关应用,024:【tcp—留言功能】,在前面的课程中并没有讲服务器如何给客户端发送数据


本节要来写一个聊天工具,相当于客服系统,由于考虑到代码难度,本节讲解的是单人的,也就是服务器系统只允许同时与一个人聊天
这也是我们的第2个课程设计,第一个是044:【店铺会员系统设计】   


这是一个大概的效果图,接下里大家下载源码开始学习


客户端代码:
.版本 2

.子程序 __启动窗口_创建完毕
.局部变量 逻辑值, 逻辑型

逻辑值 = 客户1.连接 (“127.0.0.1”, 19730)
.判断开始 (逻辑值 = 真)
    _启动窗口.标题 = “连接成功”

.默认
    _启动窗口.标题 = “连接失败,请重新连接”


.子程序 _客户1_连接断开

_启动窗口.标题 = “连接失败,请重新连接”




窗口创建完毕就连接服务器,客户1组件和服务器断开连接了_启动窗口.标题有响应告知使用者
.版本 2

.子程序 _编辑框_收信框_鼠标右键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

弹出菜单 (功能, , )

.子程序 _连接_被选择
.局部变量 逻辑值, 逻辑型

逻辑值 = 客户1.连接 (“127.0.0.1”, 19730)
.判断开始 (逻辑值 = 真)
    _启动窗口.标题 = “连接成功”

.默认
    _启动窗口.标题 = “连接失败,请重新打开软件”
.判断结束



这里绑定了一个菜单事件,可以重新发起连接

.版本 2

.子程序 _按钮_发送_被单击
.局部变量 逻辑值, 逻辑型


时间 = “(” + 时间_格式化EX (取现行时间 (), , , 3) + “)”
逻辑值 = 客户1.发送数据 (编辑框_发信框.内容)
.判断开始 (逻辑值 = 真)
    编辑框_收信框.内容 = 编辑框_收信框.内容 + “自己” + 时间 + “:” + #换行符 + 编辑框_发信框.内容 + #换行符 + #换行符


.默认

    编辑框_收信框.内容 = 编辑框_收信框.内容 + “自己” + 时间 + “:” + #换行符 + “发送失败” + #换行符 + #换行符
.判断结束


.子程序 _客户1_数据到达
.局部变量 数据, 文本型

数据 = 到文本 (客户1.取回数据 ())
时间 = “(” + 时间_格式化EX (取现行时间 (), , , 3) + “)”
编辑框_收信框.内容 = 编辑框_收信框.内容 + “服务器” + 时间 + “:” + #换行符 + 数据 + #换行符 + #换行符


这个是发送和接收代码,所谓接收就是当服务器给客户端发送数据的时候,会触发_客户1_数据到达这个子程序

服务器端代码

.版本 2

.子程序 _服务器1_客户进入

客户ip = 服务器1.取回客户 ()
_启动窗口.标题 = “服务器   连接客户:” + 客户ip


当客户连接进来的时候,取出连接客户的ip,格式为ip:端口,这个端口不是19730服务器设置的端口,是客户端设备上的端口,这个问题先不讨论


至于发送和接收代码,和客户端的发送接收差不多,没什么特别好讲的

重点:
我们消息记录的部分来源于2部分,一个是当我们按下发送按钮的时候,一个是接收到数据的时候
这就是需要聊天工具的底层框架了,在此基础上慢慢扩展出多人聊天,发送图片,群聊等功能


(点击返回课程目录:https://www.52hb.com/thread-58658-1-1.html)

sjtkxy 发表于 2023-5-26 04:46

放过羊 发表于 2023-8-15 13:07

感谢分亨!!!!!!!!

906150979 发表于 2024-4-25 16:16


感谢分亨!!!!!!!!
页: [1]
查看完整版本: 【tcp—聊天工具的开发】