当前位置:  技术问答>linux和unix

客户端和服务器端非正常断开的问题。

    来源: 互联网  发布时间:2015-06-11

    本文导语:  如果服务器端和客户端由于断网和断电等原因连接断开了,服务器端怎么知道客户端断开了?出了心跳测试还有其它什么好的办法?大家常用的是什么办法? | 检测到SIGPIPE信号时,表示网络...

如果服务器端和客户端由于断网和断电等原因连接断开了,服务器端怎么知道客户端断开了?出了心跳测试还有其它什么好的办法?大家常用的是什么办法?

|
检测到SIGPIPE信号时,表示网络断开。

|
tcp本次发送就可以知道
udp 要等下一次发送 当然中间时间要够对方协议栈返回信息的时间
tcp会定时监测对端连接情况

|
服务器只能通过write才能检测,如果socket为阻塞的,则服务器的tcp协议栈会不断的重发,最后返回-1,errno设置为超时或者不可到达。
楼上有位提到的SIGPIPE应该不会出现,除非服务器write的过程中机器重起成功,此时客户收到服务器的第一个tcp分节时会响应一个RST,收到服务器的第二个tcp分节时才会报SIGPIPE

如果网络暂时断开后又恢复正常(在tcp重发分节的时限内),服务器和客户端应该都检测不到,又可以恢复正常

|
只有下一次发送数据时才能检测到吧,这时才会触发SIGPIPE信号。

|
捕捉到SIGPIPE信号以后,要么忽略,要么做自己的事,程序是不会崩溃的。

    
 
 

您可能感兴趣的文章:

  • 客户端 socket 断开后 服务器端系统如何处理?
  • socket问题,当客户端关闭或者实际链路断开后服务器端怎么判断?
  • linux端是服务器,客户端连接后,有时并不知道客户端断开,怎么侦测?
  • 为什么客户端断开连接后,read的返回值是0?
  • 问一个socket问题,服务器不停send,客户端进入睡眠服务器会断开
  • socket客户端connect服务端后,如何断开连接?
  • 在linux下面,为什么TCP服务器端在客户端没有断开前推出程序会关不掉socket?
  • 客户端发送的socket数据,需要客户端断开连接之后服务器端才能受到,为何
  • 使用TCP,在客户端怎么知道建立好的连接已经断开?怎么用非阻塞模式,以及怎么知道socket已经收到数据并立即将数据读出?
  • 对socket使用select(max_fd,&rd_set,&wr_set,&er_set,&timeout);当服务端断开TCP连接,客户端就会崩溃。怎么解决?谢谢
  • java命名空间javax.print类docflavor的类成员方法:客户端格式化打印数据定义及介绍
  • 客户端程序与容器打交道时客户端用什么程序编写?比如银行添单。
  • php实现socket实现客户端和服务端数据通信源代码
  • 在Linux下开发手机客户端或Pc客户端交互的服务器,需要学哪些知识?
  • windows 7下打开或者关闭telnet客户端/服务端命令方法操作步骤
  • 已和客户端连接建立的socket在客户端CTRL-C后怎么在服务器端捕捉这个错误?
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 对于用客户端上网的用户(客户端不支持linux)如何在linux下上网?
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • 请问:我发现send函数会使客户端退出, 这怎么办啊,怎样让它不使客户端退出啊,这样我就能重新连上了啊?
  • 客户端访问的时候,怎么样取得客户的IP地址?
  • linux 能ping通客户端ip,但ping不通客户端的域名。
  • socket编程,服务器会用bind()绑定端口,而客户端不用绑定端口就可以调用connect()。那么客户端的端口时系统自己分配的么?是何时绑定的?
  • 服务器端关闭,客户端select 会一直可读, 读的长度是-1,怎么在不关闭客户端socket下,清除可读
  • 关于B/S结构的客户端打印的问题,求教各位 各位大虾,我用servlet和jsp作了一套b/s的系统,现在客户端需要打印,怎样才能实现?帮帮忙啊,小弟再此先谢过了!
  • 求救:j2ee的构架下,可以作为一个客户端不断的往一用vc做的应用程序客户端发数据吗?
  • 请问tcp 客户服务器模型(C/S模型)客户端两个send如果发送间隔太短,服务器端为什么会认为受到的只是一个包
  • socket编程中客户端绑定端口的问题,请兄弟们指点一下
  • jsp如何实现往客户端写数据文件
  • 可以在客户端存储文件吗?
  • SSH客户端 MindTerm
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IMAP 邮件客户端 Trojitá
  • 点对点文件分享客户端 PeerProject
  • 远程的 Shell 客户端 Rlogin
  • 版本控制客户端 CrossVC
  • XMPP 客户端 Profanity
  • 即时聊天客户端软件 kopote
  • Jabber/XMPP 客户端 jj
  • POP3客户端库 libspopc
  • IRC聊天客户端 Quassel
  • MUD客户端 TinTin++
  • 网络电视客户端 GMLive
  • 远程桌面客户端 rdesktop
  • 基于Web的FTP客户端 OurWebFTP
  • 基于Web的Jabber™客户端 JWChat
  • Applet 是在服务器端执行还是在客户端执行??
  • 客户端——服务端数据传送的几个困惑!
  • Linux 代理 一个客户端来就创建一个连接
  • fedora 校园客户端认证问题
  • 高性能 HBase 客户端 Asynchronous HBase
  • Java的CVS客户端 Gruntspud


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3