Chinaunix
标题:
recvfrom为什么不返回?
[打印本页]
作者:
shaohongqiang
时间:
2010-04-23 18:45
标题:
recvfrom为什么不返回?
系统:turbolinx
采用udp阻塞模式,多线程运行,在一个线程中调用recvfrom,阻塞中.另一个线程中在检测到规定时间内recvfrom都没有收到数据,close其socket.此时recvfrom是不是应该立即返回?
在windows下好像是立即返回的,但是现在recvfrom没有立即返回,而且close socket后,如果有数据过来recvfrom竟然还能接收正常.
各个高手能不能给解释一下为什么close socket后,recvfrom不返回错误,反而还是在阻塞运行,并且还能正常接收到数据?
作者:
shaohongqiang
时间:
2010-04-23 22:09
有高手帮帮我吗?
作者:
ubuntuer
时间:
2010-04-24 11:11
为什么不用select or 定时器呢?
作者:
lenky0401
时间:
2010-04-24 21:39
这个东西具体不知道~ 没看源码~ 不过我猜是close并不会导致recvfrom断开~ 它只是减少那个套接口的引用计数器~ 类似于删除文件一样~
以上属于个人YY的~ 如有雷同~ 纯属巧合~ O(∩_∩)O哈哈~
作者:
gigabyte
时间:
2010-04-25 00:50
用select()
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2