1、包的格式是自定义的还是有固定协议的?
2、是需要客户端和服务器端双方支持吗?
3、如果服务器端是第三方写的,不可能改动,那可以用心跳包吗?
4 个解决方案
#1
1.心跳包实际就是一个自定义的协议包,主要用于判断对方机器是否还在连接。你可以自己定义协议的格式。
2.既然是协议,当然需要c/s双方都支持
3.如果你仅仅是为了判断服务器是否在线,用tcp协议自带的心跳包就可以了,用setsockopt设置socket的SO_KEEPALIVE属性,可以设置发包时间间隔
2.既然是协议,当然需要c/s双方都支持
3.如果你仅仅是为了判断服务器是否在线,用tcp协议自带的心跳包就可以了,用setsockopt设置socket的SO_KEEPALIVE属性,可以设置发包时间间隔
#2
1、包的格式是自定义的还是有固定协议的?
2、是需要客户端和服务器端双方支持吗?
3、如果服务器端是第三方写的,不可能改动,那可以用心跳包吗?
1.是自己得协议
2.需要
3.不行
心跳包:一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉。
因为udp 是无链接得,所以只能用这种方式来看对方是否存活.
2、是需要客户端和服务器端双方支持吗?
3、如果服务器端是第三方写的,不可能改动,那可以用心跳包吗?
1.是自己得协议
2.需要
3.不行
心跳包:一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉。
因为udp 是无链接得,所以只能用这种方式来看对方是否存活.
#3
能给个例子吗?我也有很多困惑!
#4
为了减少服务端的工作压力可以用以下方案:
C定时向S发送心跳包(30/次)
S收到C的心跳包后将包到来的时间记录到数据库中去.(并不须回C我收到你的心跳包)
如果S想检测该C是不是仍在线,可取出最后一次心跳时间然后与当前时间进行比较如
果大于30秒,则认为该C已经断线了,否则该C仍在线.
这种方案适合于客户端意外断线,或卦了.通常情况下客户正常下线是要发一个包告诉
服务端我已经下线了.
C定时向S发送心跳包(30/次)
S收到C的心跳包后将包到来的时间记录到数据库中去.(并不须回C我收到你的心跳包)
如果S想检测该C是不是仍在线,可取出最后一次心跳时间然后与当前时间进行比较如
果大于30秒,则认为该C已经断线了,否则该C仍在线.
这种方案适合于客户端意外断线,或卦了.通常情况下客户正常下线是要发一个包告诉
服务端我已经下线了.
#1
1.心跳包实际就是一个自定义的协议包,主要用于判断对方机器是否还在连接。你可以自己定义协议的格式。
2.既然是协议,当然需要c/s双方都支持
3.如果你仅仅是为了判断服务器是否在线,用tcp协议自带的心跳包就可以了,用setsockopt设置socket的SO_KEEPALIVE属性,可以设置发包时间间隔
2.既然是协议,当然需要c/s双方都支持
3.如果你仅仅是为了判断服务器是否在线,用tcp协议自带的心跳包就可以了,用setsockopt设置socket的SO_KEEPALIVE属性,可以设置发包时间间隔
#2
1、包的格式是自定义的还是有固定协议的?
2、是需要客户端和服务器端双方支持吗?
3、如果服务器端是第三方写的,不可能改动,那可以用心跳包吗?
1.是自己得协议
2.需要
3.不行
心跳包:一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉。
因为udp 是无链接得,所以只能用这种方式来看对方是否存活.
2、是需要客户端和服务器端双方支持吗?
3、如果服务器端是第三方写的,不可能改动,那可以用心跳包吗?
1.是自己得协议
2.需要
3.不行
心跳包:一般是用来判断对方(设备,进程或其它网元)是否正常动行,一般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉。
因为udp 是无链接得,所以只能用这种方式来看对方是否存活.
#3
能给个例子吗?我也有很多困惑!
#4
为了减少服务端的工作压力可以用以下方案:
C定时向S发送心跳包(30/次)
S收到C的心跳包后将包到来的时间记录到数据库中去.(并不须回C我收到你的心跳包)
如果S想检测该C是不是仍在线,可取出最后一次心跳时间然后与当前时间进行比较如
果大于30秒,则认为该C已经断线了,否则该C仍在线.
这种方案适合于客户端意外断线,或卦了.通常情况下客户正常下线是要发一个包告诉
服务端我已经下线了.
C定时向S发送心跳包(30/次)
S收到C的心跳包后将包到来的时间记录到数据库中去.(并不须回C我收到你的心跳包)
如果S想检测该C是不是仍在线,可取出最后一次心跳时间然后与当前时间进行比较如
果大于30秒,则认为该C已经断线了,否则该C仍在线.
这种方案适合于客户端意外断线,或卦了.通常情况下客户正常下线是要发一个包告诉
服务端我已经下线了.