|
网络客户端
.版本 2
.支持库 sock
.支持库 EThread
.程序集 窗口程序集1
.程序集变量 客户端, 网络客户端
.程序集变量 文件, 字节集
.程序集变量 文件名, 文本型
.子程序 _按钮1_被单击
.如果 (客户端.连接 (编辑框1.内容, 到数值 (编辑框2.内容)) = 真)
_启动窗口.标题 = “连接成功”
.否则
_启动窗口.标题 = “连接失败”
.如果结束
.子程序 _按钮2_被单击
.如果 (客户端.断开 () = 真)
_启动窗口.标题 = “断开成功”
.否则
_启动窗口.标题 = “断开失败”
.如果结束
.子程序 _按钮3_被单击
.如果真 (通用对话框1.打开 () = 真)
列表框1.清空 ()
文件名 = 取文本右边 (通用对话框1.文件名, 取文本长度 (通用对话框1.文件名) - 倒找文本 (通用对话框1.文件名, “\”, , 假))
文件 = 读入文件 (通用对话框1.文件名)
列表框1.加入项目 (通用对话框1.文件名, )
列表框1.加入项目 (“文件大小:” + 到文本 (取字节集长度 (文件)), )
.如果真结束
.子程序 _按钮4_被单击
.局部变量 信息, 文本型
.如果真 (取字节集长度 (文件) > 0)
客户端.发送 (文件名, 0)
信息 = 到文本 (客户端.接收 (0))
.如果 (信息 = “ok”)
客户端.发送 (到字节集 (取字节集长度 (文件)), 0)
启动线程 (&发送)
.否则
.如果真 (信息 = “no”)
信息框 (“服务器拒绝接收”, 0, )
.如果真结束
.如果结束
.如果真结束
.子程序 发送
客户端.发送 (文件, -1)
客户端.发送 (“send_end”, 0)
信息框 (“传送完毕”, 0, )
网络服务器
.版本 2
.支持库 sock
.支持库 EThread
.程序集 窗口程序集1
.程序集变量 服务器, 网络服务器
.程序集变量 文件大小, 整数型
.程序集变量 数据, 字节集
.程序集变量 客户句柄, 整数型
.子程序 _开启服务_被单击
数据 = { }
文件大小 = 0
客户句柄 = 0
.如果真 (服务器.启动 (到数值 (编辑框1.内容)) = 真)
_启动窗口.标题 = “开启成功”
启动线程 (&子程序1)
.如果真结束
.子程序 子程序1
.局部变量 临时数据, 字节集
.局部变量 数据大小, 整数型
客户句柄 = 服务器.监听 (0)
标签2.标题 = “客户IP/端口: ” + 到文本 (服务器.取客户IP (客户句柄)) + “:” + 到文本 (服务器.取客户端口 (客户句柄))
通用对话框1.文件名 = 到文本 (服务器.接收 (客户句柄, 0))
.如果 (通用对话框1.打开 () = 真)
服务器.发送 (客户句柄, “ok”, 0)
文件大小 = 取字节集数据 (服务器.接收 (客户句柄, 0), #整数型)
标签3.标题 = “文件大小:” + 到文本 (文件大小)
.循环判断首 ()
临时数据 = 服务器.接收 (客户句柄, 0)
数据大小 = 数据大小 + 取字节集长度 (临时数据)
标签4.标题 = “已经传送:” + 到文本 (数据大小)
.如果真 (取字节集右边 (临时数据, 8) = 到字节集 (“send_end”))
数据 = 数据 + 取字节集左边 (临时数据, 取字节集长度 (临时数据) - 8)
跳出循环 ()
.如果真结束
数据 = 数据 + 临时数据
.循环判断尾 (真)
写到文件 (通用对话框1.文件名, 数据)
.否则
服务器.发送 (客户句柄, “no”, 0)
.如果结束
.子程序 _按钮2_被单击
.如果真 (服务器.断开连接 (客户句柄) = 真)
_启动窗口.标题 = “断开成功”
.如果真结束
.子程序 __启动窗口_创建完毕
.局部变量 本机IP, 文本型, , "0"
本机IP = 取本机IP ()
标签5.标题 = 标签5.标题 + 取本机名 ()
标签6.标题 = 标签6.标题 + 本机IP [1]
.子程序 _按钮3_被单击
.如果真 (服务器.停止 () = 真)
_启动窗口.标题 = “停止服务”
.如果真结束 |
-
-
网络服务器.e
6.94 KB, 下载次数: 508, 下载积分: 精币 -2 枚
-
-
网络客户端.e
5.69 KB, 下载次数: 436, 下载积分: 精币 -2 枚
评分
-
查看全部评分
|