注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

Linux和Win下对SOCKET状态的处理不同  

2015-02-02 11:50:07|  分类: 网络服务编程技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Linux和Win下对SOCKET状态的处理不同
在Linux中和Win下对SOCKET的状态是不同的,专门测试了Send过程,发现无论在何种情况下,不管服务端关闭还是不关闭,都会返回一个-1,这个看来微软还是做了不少工作的。Linux其实和Win下是一样的的,但是Linux为了安全起见做了一些错误处理。用来处理进程,让进程退出或者是继续运行。
另外还一个问题,就是如果用前面提到的Signal发送一些信号到Select(一般不推荐使用这个函数,推荐sigaction,因为signal的语义与实现有关,所以最好使用sigaction函数替代本函数 ),这个在处理不同的线程或者进程时,确实会有一些问题,但最主要的是权限,如果你的权限不够的话,可能会有一些实际的问题。
另外说一下在Select中的一些参数的不同,特别是第一个参数,它是和Win有明显区别的,前者是MAX+1,而WIN下可以是0,无所谓。另外还得再唐僧一下对延时的处理:
把Timeout内部的值设置为0,和把Timeout整体设置成NULL,是完全不同的,前者是直接返回,后者则永远等待。
切记,切记。

  评论这张
 
阅读(271)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017