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

TCP 服务器端关闭客户端句柄问题

    来源: 互联网  发布时间:2016-09-09

    本文导语:    各位大侠不吝赐教,我现在使用LINUX编制了一个TCP的服务器软件(基于ARM9平台),创建一个线程accept获取多个客户端连接的socket句柄clientfd[i],使用心跳信号维持和客户端的通信,在发现某个客户端异常断开之后,...

  各位大侠不吝赐教,我现在使用LINUX编制了一个TCP的服务器软件(基于ARM9平台),创建一个线程accept获取多个客户端连接的socket句柄clientfd[i],使用心跳信号维持和客户端的通信,在发现某个客户端异常断开之后,使用shutdown(clientfd[i], 2)关闭此连接,以备下一次该客户端启动时能够重新连接上,但是我发现调用shutdown之后整个进程就退出,我现在是多线程,主线程是一个while(1),按道理来讲不应该退出,不知道什么原因,请各位帮忙!
  如果改用close函数虽然不会使整个进程退出但是客户端重新启动连接之后无法正常的通信。
  有什么办法发现客户端连接断开之后正确的在服务器端做清理吗?为什么shutdown会使整个进程退出?

|
忽略信号试试
signal(SIGPIPE, SIG_IGN);

|
shutdown本身并不会使整个进程退出,
 先用core文件分析一下是在哪里退出再说。
编译参数加-g选项,
ulimit -c 4096
gdb youprogram -c core.*

    
 
 

您可能感兴趣的文章:

  • 大侠,求助!!LINUX下TCP套接字编程中客户端出现段错误
  • 使用tcp协议发送数据, 如果获得系统底层将包发到客户端之间的耗时?
  • tcp/ip 服务端响应linux客户端问题
  • 求救:基于TCP的服务/客户端程序
  • TCP:客户端连接服务器出错
  • tcp连接中服务器如何知道客户端退出
  • 在linux下面,为什么TCP服务器端在客户端没有断开前推出程序会关不掉socket?
  • 关于tcp中客户端和服务端通信模式的请教
  • 请问tcp 客户服务器模型(C/S模型)客户端两个send如果发送间隔太短,服务器端为什么会认为受到的只是一个包
  • TCP服务端程序意外重启后,客户端连接不上的问题求解
  • linux下socket tcp客户端读取数据
  • 哪位给看一下 为什么连接失败 errno=111 connect 调用失败(这是客户端已tcp方式连接)
  • 请教做过将linux移植到arm9上的大虾,在pc的linux下成功的tcp客户端代码交叉编译后,通过网线下到目标板就无法连接到pc上的服务器端了。
  • tcp socket客户端和服务端示例分享
  • vc++实现的tcp socket客户端和服务端示例
  • 嵌入式linux下,TCP的客户端无法连接到服务器(硬件没问题),请帮忙看看!谢谢
  • 使用TCP,在客户端怎么知道建立好的连接已经断开?怎么用非阻塞模式,以及怎么知道socket已经收到数据并立即将数据读出?
  • 对socket使用select(max_fd,&rd_set,&wr_set,&er_set,&timeout);当服务端断开TCP连接,客户端就会崩溃。怎么解决?谢谢
  • 一个TCP文件传输程序,客户端老连不上,大家帮我看看哪错了
  • Android TCP 文件客户端与服务器DEMO介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux如何关闭一个TCP连接
  • 用select如何侦测TCP连接是否被对方关闭?
  • 如何关闭某一个端口的TCP连接。。
  • * 用select如何侦测TCP连接是否被对方关闭?
  • TCP协议关闭握手问题请教
  • 为什么使用iptables -A INPUT -p tcp --dport 7777 -j DROP指令后,只是过滤端口而不是关闭?
  • win2003应用程序日志-状态服务器已关闭超时的 TCP/IP 连接的解决方法
  • 在一个TCP连接完成后进行通信,如何判断对方已经关闭了?
  • java命名空间java.net接口socketoptions的类成员方法: tcp_nodelay定义及介绍
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • Linux内核中影响tcp三次握手的一些协议配置
  • 100分求《嵌入式系统Web服务器—TCP/IP Lean》或《TCP/IP Lean Web Servers for Embedded Systems 》
  • TCP协议报头字段详解及报头图
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 对TCP协议状态及状态转换理解
  • tcp_prequeue_process怎么调用了tcp_v4_do_rcv的??求解??在tcp_recvmsg调用的
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 请问怎么知道每个TCP连接所属哪个进程??还有怎么样断开系统中任意一个TCP连接?
  • TCP协议三次握手过程详解
  • 求助!!!linux tcp发送 xp tcp接收 出现的问题
  • TCP/IP协议族介绍及TCP/IP协议族中各协议对应的RFC编号
  • 高分求救:SOL_SOCKET,SO_RCVTIMO,SO_SNDTIMEO,IPPOTO_TCP,TCP_NODELAY这些是在哪个头文件定义的呢?
  • 请问RST在什么情况下发送?? 使用TCP socket编程的话是否会引起这种TCP包的发送?
  • netfilter里如何获得TCP包的数据?
  • TCP_NODDELAY的问题
  • linux内核tcp重组的函数?
  • 转发 TCP/IP 连接 prtunnel
  • tcp的分节表示什么?
  • 如何在Linux系统上运行T/TCP程序


  • 站内导航:


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

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

    浙ICP备11055608号-3