请教下,在非阻塞模式下send的问题?
情况是这样的:
服务器端和客户端都使用的非阻塞模式的tcp连接。
服务器端会一直给客户端发送数据(传流媒体),但是客户端不会回发数据。
我的问题是:非阻塞模式下的TCP socket ,
当网络连接中断了的时候 ,我能不能通过发送数据不成功来获得这个情况呢?
(因为如果网络断开了,那么服务器发送出去的数据就没法被客户端确定,然后服务器可能会一直重传?)
比如下次服务器端发送数据前,调用getsockopt SO_ERROR 来获得错误的原因,从而断定网络出问题了。
为了增加可靠性,可以假设比如连续多少次在发送前调用getsockopt SO_ERROR都返回错误,那么就认为网络已经中断了。
这样是不是就可以不用心跳呢?
还有那个select的第三个集合exception , 这个是指发生哪些事件的时候,出现呢?
谢谢各位了。