2
支持库
sock程序集
窗口程序集1
程序集变量
用户,
文本型
程序集变量
密码,
文本型子程序
__启动窗口_创建完毕
局部变量
IP,
文本型,
,
"0"IP
=
取本机IP
()
编辑框1内容
=
IP
[1]子程序
_服务器_数据到达
局部变量
数据,
文本型数据
=
删首尾空
(到文本
(服务器取回数据
()))
用户
=
取文本左边
(数据,
寻找文本
(数据,
“#”,
,
真)
-
1)
密码
=
取文本右边
(数据,
取文本长度
(数据)
-
寻找文本
(数据,
“#”,
,
真))
信息框
(“有用户登录:”
+
#换行符
+
用户
+
#换行符
+
密码,
0,
)
子程序
_按钮1_被单击客户连接
(编辑框1内容,
19730)
客户发送数据
(到字节集
(编辑框2内容
+
“#”
+
编辑框3内容))
子程序
_服务器_客户进入输出调试文本
(服务器取回客户
())楼主你加个数组变量不就得了!!!
版本 2
程序集变量 客户列表, 文本型, , "0"
子程序 _服务器1_客户进入
加入成员 (客户列表, 服务器1取回客户 ())
子程序 _按钮1_被单击
局部变量 n, 整数型
计次循环首 (取数组成员数 (客户列表), n)
服务器1断开客户 (客户列表 [n])
计次循环尾 ()版本 2
程序集 窗口程序集1
程序集变量 客户, 文本型
子程序 __启动窗口_创建完毕
服务器1端口 = 19730
' 这里是将服务器跟客户端放在同一个窗口下写的
' 客户1连接服务器的3个条件,1:服务端已经运行。2:服务地址填写正确。3:端口要一致
' 本机测试用127001就可以了,外网的话根据外网IP填写,或用域名解析。例如 花生壳等软件,解析后直接填入域名。
' 端口 0-65535 只要不跟其他程序使用的端口冲突就可以
如果真 (客户1连接 (“127001”, 19730) = 假)
信息框 (“连接服务器失败!”, 0, )
返回 ()
如果真结束
信息框 (“连接服务器成功!”, 0, )
子程序 _服务器1_客户进入
' 当客户连接进来以后可以先取回这个客户的IP,等下发送数据数用得到,有多个客户连接的话可以用数组保存
客户 = 服务器1取回客户 ()
子程序 _按钮2_被单击
' 客户发送数据
客户1发送数据 (“客户1发送来的数据”)
子程序 _按钮1_被单击
' 服务器发送数据
服务器1发送数据 (客户, “服务器1发送来的消息”, )
子程序 _客户1_数据到达
局部变量 消息, 文本型
' 客户取回服务器发来的消息
' 接收到的数据时字节集型的,先到下文本
消息 = 到文本 (客户1取回数据 ())
信息框 (消息, 0, )
' 当然,如果发送的不是文本,而是一个文件、一张的话,就不用到文本了。而应该用一个字节集型的变量来接收
子程序 _服务器1_数据到达
局部变量 消息, 文本型
' 接收客户发送的数据
消息 = 到文本 (服务器1取回数据 ())
信息框 (消息, 0, )
花了1分钟帮你写好了,还待有超时功能>>直接复制下面代码到易语言
版本 2
程序集 窗口程序集1程序集变量 收到回复, 逻辑型
子程序 _连接按钮_被单击局部变量 StartTime, 整数型
判断开始 (客户1连接 (“127001”, 888) = 假)
信息框 (“连接服务器失败!”, #警告图标, “幕後友情提示:”)
判断 (客户1发送数据 (“998877 ”) = 假)
信息框 (“发送数据失败!”, #警告图标, “幕後友情提示:”)
默认
StartTime = 取启动时间 ()
判断循环首 (取启动时间 () - StartTime < 3000 且 收到回复 = 假)
处理事件 ()
判断循环尾 ()
如果 (收到回复 = 假)
信息框 (“超时!”, #警告图标, “幕後友情提示:”)
客户1断开连接 ()
否则
客户1发送数据 (“999888777 ”)
如果结束
判断结束
子程序 _客户1_数据到达
局部变量 取回数据, 文本型
取回数据 = 到文本 (客户1取回数据 ())
判断开始 (取回数据 = “665544 ”)
收到回复 = 真
默认
判断结束
子程序 _客户1_连接断开
信息框 (“服务器与客户端已断开连接!”, #错误图标, “幕後友情提示:”)
第一个程序编辑框1用来显示文件路径
编辑框2用来显示对方发来的文本
按钮1用来浏览文件
按钮2用来发送文件
此外还有服务器 通用对话框
版本 2
程序集 窗口程序集1
子程序 _按钮1_被单击
通用对话框1打开 ()
编辑框1内容 = 通用对话框1文件名
子程序 _按钮2_被单击
服务器1发送数据 (客户IP, 读入文件 (通用对话框1文件名), 1000)
信息框 (“发送成功”, 0, )
子程序 _服务器1_数据到达
局部变量 file, 字节集
file = 服务器1取回数据 ()
编辑框2内容 = 到文本 (file)
信息框 (“数据到达”, 0, )
第二个程序
编辑框1用来显示保存文件的路径
编辑框2用来显示发送的文本
按钮1用来发送文本
此外还有通用对话框 客户
版本 2
程序集 窗口程序集1
子程序 _按钮1_被单击
客户1连接 (用户IP, 19730)
客户1发送数据 (编辑框1内容)
信息框 (“已发送”, 0, )
子程序 _客户1_数据到达
局部变量 file, 字节集
file = 客户1取回数据 ()
通用对话框1打开 ()
编辑框1内容 = 通用对话框1文件名
信息框 (“已保存”, 0, )
我试过了,可以的……
在使用时可以将“客户IP”与“用户IP”替换成想要的IP地址就可以了 IP为文本型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)