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

socket 问题,在线等待!!!!!!!!!!!!!!!!!!!

    来源: 互联网  发布时间:2015-04-24

    本文导语:  我有两个程序,客户端的和服务端的。建立连接后,用服务端程序向客户端发送数据时(用send(),里面各种错误检查都有) 发送,突然关闭客户端,这时服务端的程序就没有反应了,好像一直在send()函数处阻塞,请...

我有两个程序,客户端的和服务端的。建立连接后,用服务端程序向客户端发送数据时(用send(),里面各种错误检查都有) 发送,突然关闭客户端,这时服务端的程序就没有反应了,好像一直在send()函数处阻塞,请问怎么从send()中返回啊

|
告诉楼主:如果你时通过函数把连接关闭了,发送端是能检测出来的;但如果你通过断网线或其他方法断开连接,发送端是检测不出来的。心跳测试可以很好的测试一个连接是否正常;select()函数也可以间接测试.共参考!

|
to wabc:
如果一个人没有心跳,。。。
如果对端应用没有心跳,也。。。

只是一种技术手段,因为TCP建立在不可靠的IP上,所以对路径上的情况不能做如何假设。当网络上任何地方出现问题时,TCP都无法知道,只能傻等。虽然有KEEPALIVE,但间隔太长。所以对关键应用,可以使用心跳技术。现在linux的socket应该是直接支持了心跳。

|
人为断开send当然会阻塞。只能自己加超时。
心跳(heartbeat)检测对你的这个问题没有什么帮助。只有超时从send退出之后心跳检测才有意义。

|
奇怪了,为什么我测试时,我想让send阻塞还阻塞不了了呢?

serv/cli一连通,我让接受端马上断开,但发送仍然能够发送数据?

|
1.设置超时,超时后退出
2.使用心博函数定时检查客户端的health,出现异常后退出。

|
应该有个监控线程,定期检查每个工作线程的状态。

上面所说的“心跳(heartbeat)”是什么啊

|
有buffer。

    
 
 

您可能感兴趣的文章:

  • 急!关于SOCKET编程,在线等待!
  • linux下 SOCKET 通信问题(在线等待,急!!!)
  • socket接收二进制数据流的问题!!(在线等待)
  • socket通讯我如何才能正确接受来自c++的字符串??在线等待,立即送分!
  • 如何利用socket传文件(不同格式的)?高分求救!!---在线等待
  • linux socket问题。。怎样获得已帮定特定port的一个套接字socket
  • 关于socket概念的理解问题!
  • socket编程 中的bind问题
  • 你是否可以回答Socket的问题?数据先后问题
  • 多进程socket编程问题
  • Socket的问题
  • socket accept问题,大家指教。
  • socket客户端程序的问题
  • 关于多网口socket通信的简单问题
  • fgets用在SOCKET流上的问题
  • linux socket fd 写阻塞问题
  • linux下用socket实现多进程间通信问题?
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • sco unix下socket编程的问题,请大家帮忙
  • 请问socket方面的问题
  • socket编程中的问题,请各位大侠指教!
  • 急!!请教关于linux socket编程的一个问题!!
  • socket编程,使用recvfrom()函数监听问题。
  • linux下socket编程问题!
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!


  • 站内导航:


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

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

    浙ICP备11055608号-3