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

请移步gmd20.github.com

// 编程和生活。不再使用,网易博客功能异常他们都没人维护了

 
 
 

日志

 
 

2017-12-28-nanomsg的几个注意事项.markdown  

2017-12-28 00:33:29|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  • nanomsg 的 soccket fd在内部 设置了 “FD_CLOEXEC” socket选项,所以fork()进入子进程后会自动把这个socket给关闭了。
    也就是说nanomsg的socket fd不能被子进程继承,不能多个进程共同监听或者accept之类的。虽然nanomsg的socket是多线程安全的,
    可以线程之间共享使用一个socekt fd, 但父子进程里面应该使用各自独立的soceket fd。

  • nanomsg的 ipc socket是用unix socket实现的,对应的socket的文件和目录可能需要root访问权限。

  • nn_connect/nn_bind 是异步的,函数返回来,socket并没有完全初始化完,如果马上nn_send使用这个socket fd来发送数据,前面 几个应该是会失败的。 nanomsg 应该是自己维护一个线程,所有的初始化工作在他的线路里面完成。比如断开自动重连等等。所以
    nn_connect 最好在程序的初始化阶段就调用完成,留一个时间窗口给nanomsg线程是创建底层的连接,这样后面的nn_send发送数据 时才能保证这个socket已经初始化完了,才能发送成功。

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

历史上的今天

评论

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

页脚

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