易语言怎么判断客户1是否连接服务器

客户端要判断现在是否和服务端相连,如果连着就什么也不操作,如果没连着就尝试去连接。我写了个时钟,1秒就去判断,这样写的

.版本 2

.子程序 _时钟1_周期事件

.如果 (客户1.连接 (“127.0.0.1”, 9209) = 真)

.否则
客户1.连接 (“127.0.0.1”, 9209)
.如果结束

时钟周期是1000,就是每秒取判断一次,如果连着就不动,如果没连着就尝试连接。可是问题出现了,在进行判断的同时,客户端就主动去连接了服务端。也就是说每一个时钟周期,不管有没有连接,客户端都去重新连接服务器端,这样就导致了端口不稳定。每一个时钟周期客户端就换一个端口取连接。
这个问题就出在这了。有什么办法让客户端单纯的去判断,但是又不在判断的同时连接呢,费解!

易语言中,客户端连接到服务器,会调用客户进入函数,然后就一直保持连接状态,你可以在任何能使用服务器变量的地方去给客户机发送数据,当客户机离开服务器的时候,也会调用客户退出,你可以在这里写客户退出的逻辑,客户连接服务器的期间,是不需要一直判断的,因为他退出会调用函数告诉你。给你看图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-11
如果(客户1.连接(“127.0.0.1”,80)=真)
先创建一个逻辑变量 然后用计次循环首来做时钟
变量=客户1.连接(“127.0.0.1”,80)
如果没连接成功 变量就=假 连接就=真
如果(变量=假)
计次循环首(5,)
变量=客户1.连接(“127.0.0.1”,80)
延迟(1000)
计次循环尾()
第2个回答  2013-08-09
你可以让连接成功之后服务器发送点信息(比如“连接成功”)
你可以新设置一个按钮,如果没有连接成功,按钮的可视=真(也就是可以点)成功了就隐藏追问

服务器怎么发消息呢

追答

首先学习要自己去学,不要总问别人
.版本 2

服务器1.发送数据 (, , )

追问

首先客户端都没有连接服务器,服务器端发的消息客户端是收不到的吧?

追答

对得,好像根本不能发送过去

追问

那怎么办

追答

先连接上唉,没有信息就继续连接或者加上一个按钮手动连接

第3个回答  推荐于2017-08-18

解决方案可以如下:

    通过其GUI组件“客户”本身的“已断开”事件进行响应重连服务端。

    客户端与服务端之间隔一段时间就进行一次心跳包检测

本回答被网友采纳
第4个回答  2017-06-21
刚刚看错问题了,添加一个按钮和一个客户,点击一次客户连接后就可以

.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击

.如果 (客户1.连接 (“127.0.0.1”, 19730)) ' 127.0.0.1未服务器的地址
信息框 (“客户已连接”, 0, , )
.否则
信息框 (“客户未连接”, 0, , )
.如果结束

.子程序 _客户1_连接断开
.局部变量 a, 整数型

.判断循环首 (a = 0)
.如果 (客户1.连接 (“127.0.0.1”, 19730)) ' 127.0.0.1未服务器的地址
信息框 (“客户已连接”, 0, , )
a = 1
.否则
信息框 (“客户未连接”, 0, , )
.如果结束

.判断循环尾 ()
相似回答