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
  • 5721

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

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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

在 android socket 编程中我们需要时刻对其网络状态进行判断,android(java)对网络状态判断的方法(isClosed(),isConnected(),isInputShutdow...

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

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

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

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

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

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

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

如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可以借助VOIP的模式来实现这一需求。但是如果的应用程序并不是正真的VOIP应用,那当你把你的应用提交到AppStore的时候...

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

如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可以借助VOIP的模式来实现这一需求。但是如果的应用程序并不是正真的VOIP应用,那当你把你的应用提交到AppStore的时候...

通过select 和状态EINPROGRESS 实现socket 超时连接

调用connect连接一般的超时时间是75s, 但是在程序中我们一般不希望等这么长时间采取采取动作。 可以在调用connect之前设置套接字非阻塞,然后调用connect,此时connect会立刻返回...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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