客户端要判断现在是否和服务端相连,如果连着就什么也不操作,如果没连着就尝试去连接。我写了个时钟,1秒就去判断,这样写的
.版本 2
.子程序 _时钟1_周期事件
.如果 (客户1.连接 (“127.0.0.1”, 9209) = 真)
.否则
客户1.连接 (“127.0.0.1”, 9209)
.如果结束
时钟周期是1000,就是每秒取判断一次,如果连着就不动,如果没连着就尝试连接。可是问题出现了,在进行判断的同时,客户端就主动去连接了服务端。也就是说每一个时钟周期,不管有没有连接,客户端都去重新连接服务器端,这样就导致了端口不稳定。每一个时钟周期客户端就换一个端口取连接。
这个问题就出在这了。有什么办法让客户端单纯的去判断,但是又不在判断的同时连接呢,费解!
在易语言中,客户端连接到服务器,会调用客户进入函数,然后就一直保持连接状态,你可以在任何能使用服务器变量的地方去给客户机发送数据,当客户机离开服务器的时候,也会调用客户退出,你可以在这里写客户退出的逻辑,客户连接服务器的期间,是不需要一直判断的,因为他退出会调用函数告诉你。给你看图
服务器怎么发消息呢
追答首先学习要自己去学,不要总问别人
.版本 2
服务器1.发送数据 (, , )
首先客户端都没有连接服务器,服务器端发的消息客户端是收不到的吧?
追答对得,好像根本不能发送过去
追问那怎么办
追答先连接上唉,没有信息就继续连接或者加上一个按钮手动连接
解决方案可以如下:
通过其GUI组件“客户”本身的“已断开”事件进行响应重连服务端。
客户端与服务端之间隔一段时间就进行一次心跳包检测