socket连接状态的判断

原创 2007年09月24日 16:36:00
用非阻塞send 0字节的方法无法判断socket连接。那是msdn上介绍的方法。我的服务程序启动专门线程负责监听端口,并处理新的socket连接数据。我客户端使用shutdown+close断开了,但是服务程序中的socket的connected属性一直为true,send 0字节总是成功,没有异常。如果可以及时判断连接丢失的话,我就可以直接在主线程中接收和发送数据。否则要启动专门的线程来处理新的socket连接,当客户端断开时阻塞式的receive函数会直接返回0,我就可以直接close了。 

    另外有一种poll的方法,看了一下,也是要阻塞的方式才能判断,多个socket需要处理的情况下,不适合单线程来处理。 

相关文章推荐

判断SOCKET连接状态

1. 用read函数来判断读到长度0不能断定是已经断开.除非是-1,才代表输入流已经被关闭,说名socket已经close,而且关键在于你怎么读,实际上应该是一个单独的线程一直在读,因为你无法预先知道...
  • Hou_Rj
  • Hou_Rj
  • 2011年04月25日 11:15
  • 5870

android(java) socket判断网络连接状态

在 android socket 编程中我们需要时刻对其网络状态进行判断,android(java)对网络状态判断的方法(isClosed(),isConnected(),isInputShutdow...
  • yudajun
  • yudajun
  • 2013年08月19日 11:04
  • 15021

soket编程相关(二)如何判断连接状态断开,Linux:C/Socket多路复用select(),阻塞

以下程序是网上一哥们写的:就是通讯任意一方可以任意发送消息,有消息来到时会收到系统提示去接收消息。先建立好套接字,然后绑定,转化为监听套接字,接受连接。这里要用到select函数。使用步骤如下:1、设...

面试中的soket编程相关(一)(如何判断连接状态断开,Linux:C/Socket多路复用select(),阻塞

1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回值 ...

Linux系统下通过Socket文件描述符寻找连接状态

Proc虚拟文件系统下面有许多数字命名的子目录,这些数字表示系统当前运行的进程号; 其中/proc/N/fd目录下面保存了打开的文件描述符,指向实际文件的一个链接。如下: [root@XXXXXXX_...

客户端主动获知socket连接状态的变化

项目简介: 该项目把手机上的导航信息发送到汽车仪表上,并在仪表上显示,实现手机地图到仪表的投射。发送端程序用Java编写,接收端程序用C++,Qt编写。仪表和手机之间通过wifi通信。服务器:仪表,客...

awk用法及一个小应用,统计socket连接数量及状态

netstat -an|awk '/^tcp/ {++S[$NF]} END {for(a in S ) print a,S[a]}' -----------------------...

TCP/IP收发缓存_MSS/MTU算法机制_状态图_连接建立和断开之上的socket函数需要注意的问题

一、客户端socket函数: // 1. socket 请求前要先加载socket驱动库,指定协议族,socket类型,具体协议。 SOCKET sClient = socket(AF_INET,...

iOS应用中通过设置VOIP模式实现休眠状态下socket的长连接

如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可以借助VOIP的模式来实现这一需求。但是如果的应用程序并不是正真的VOIP应用,那当你把你的应用提交到AppStore的时候...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:socket连接状态的判断
举报原因:
原因补充:

(最多只允许输入30个字)