易语言 客户端如何判断与服务器掉线
4个回答
展开全部
在客户端组件,下面有个
“子程序
_客户1_连接断开“
的事件,当与服务器断开,他会执行此事件下的代码!
你可以在此事件设置:
比如,当如果服务器断开,我需要重新连接服务器。那么此事件下加入命令:
"客户1.连接("127.0.0.1”,19730)
重新与服务器取得连接!
如果不需要重新与服务器连接,只想取到客户端是否与服务器断开。那么,你可以在此事件下面设置一个
程序集变量
或
全局变量
当此事件被调用,就赐值给这个变量,我这里赐
1。然后可以检测此变量的值,如果是1,那么就说明已经和服务器断开了,重新和服务器连接的时候,再赐值给变量为
0
。这样当变量为
1(说明已经断开),当变量为
0
(说明已经连接)。
请采纳!
“子程序
_客户1_连接断开“
的事件,当与服务器断开,他会执行此事件下的代码!
你可以在此事件设置:
比如,当如果服务器断开,我需要重新连接服务器。那么此事件下加入命令:
"客户1.连接("127.0.0.1”,19730)
重新与服务器取得连接!
如果不需要重新与服务器连接,只想取到客户端是否与服务器断开。那么,你可以在此事件下面设置一个
程序集变量
或
全局变量
当此事件被调用,就赐值给这个变量,我这里赐
1。然后可以检测此变量的值,如果是1,那么就说明已经和服务器断开了,重新和服务器连接的时候,再赐值给变量为
0
。这样当变量为
1(说明已经断开),当变量为
0
(说明已经连接)。
请采纳!
展开全部
为什么需要心跳连接主要是判断当前连接是否是有效的、可被使用的。在实际应用中假设一段时间没有数据传输时候理论上说应该连接是没有问题的,但是网络复杂,中途出现问题也是常见的,网线被掐断了、对方进程挂掉了、频繁丢包等,这时候tcp连接是不可使用的,但是对于应用层并不知道,如果需知道网络情况则要很复杂的超时进行了解,tcp从底层就实现了这样的功能。实现:public
void
heartcheck(final
clientsocket
socket){
//心跳连接(检查断链)
服务器断线重连
new
thread(new
runnable()
{
public
void
run()
{
while
(true)
{
if(socket.isconnectstatus()==false)break;
try
{
socket.sendheartcheck();//socket.sendurgentdata(0xff);
//system.out.println("目前是正常的!");
thread.sleep(10
*
1000);
}
catch
(ioexception
e)
{
//
todo
auto-generated
catch
block
system.out.println("心跳检测到客户端"+socket.getserver_id()+"掉线");
socket.destroy();
break;
}
//
发送心跳包
catch
(exception
e)
{
//
todo
auto-generated
catch
block
//e.printstacktrace();
}
}
}
}).start();
}
void
heartcheck(final
clientsocket
socket){
//心跳连接(检查断链)
服务器断线重连
new
thread(new
runnable()
{
public
void
run()
{
while
(true)
{
if(socket.isconnectstatus()==false)break;
try
{
socket.sendheartcheck();//socket.sendurgentdata(0xff);
//system.out.println("目前是正常的!");
thread.sleep(10
*
1000);
}
catch
(ioexception
e)
{
//
todo
auto-generated
catch
block
system.out.println("心跳检测到客户端"+socket.getserver_id()+"掉线");
socket.destroy();
break;
}
//
发送心跳包
catch
(exception
e)
{
//
todo
auto-generated
catch
block
//e.printstacktrace();
}
}
}
}).start();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选择服务器,左边参数下面有一个用户离开。每次断线都会返回数据的。
.版本
2
.
子程序
_服务器1_客户离开
.版本
2
.
子程序
_服务器1_客户离开
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
易语言给所有的函数都做了提示的好不?如果我没猜错,易语言的提示下面写的是。如果返回-1,则代表通信失败。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询