2012年8月16日

阻塞机制下的recv小结

摘要: recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态,下面是我针对常见的几种网络状态的简单总结。 首先阻塞接收的recv有时候会返回0,这仅在socket被正常关闭时才会发生。而当拔掉设备网线的时候,recv并不会发生变化,仍然阻塞,如果在这个拔网线阶段,socket被关掉了,后果可能就是recv永久的阻塞了。所以一般对于阻塞的socket都会用setsockopt来设置socket的超时。 当超时时间到达后,recv会返回错误,也就是-1,而此时的错误码是EAGAIN或者EWOULDBLOCK,POSIX.. 阅读全文

posted @ 2012-08-16 22:05 守夜者 阅读(25227) 评论(4) 推荐(3) 编辑

导航