免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6819 | 回复: 9
打印 上一主题 下一主题

[C] linux本机进程间UDP通信,会不会掉包 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-30 22:34 |只看该作者 |倒序浏览
如题,目前架构是一个进程只负责网络IO,管理连接,后端开多个逻辑处理进程,用共享内存的话免不了大量的锁,解锁操作,于是想到了用udp,前端网络IO进程一个事务一个包扔给后端逻辑进程。。

只是不知,本机UDP操作会不会掉包,按理说是不过网卡的。

论坛徽章:
0
2 [报告]
发表于 2009-11-30 22:47 |只看该作者
本机的话 建议采用 unix域套接字

论坛徽章:
0
3 [报告]
发表于 2009-11-30 23:07 |只看该作者
原帖由 lenky0401 于 2009-11-30 22:47 发表
本机的话 建议采用 unix域套接字


+1,另外如果是父进程和子进程之间的通讯,用管道也是非常不错的选择。

论坛徽章:
0
4 [报告]
发表于 2009-11-30 23:09 |只看该作者
如果读端一直不读,会覆盖

论坛徽章:
0
5 [报告]
发表于 2009-11-30 23:31 |只看该作者
UDP本身就不保证,所以还是有可能丢包。

论坛徽章:
0
6 [报告]
发表于 2009-12-01 08:59 |只看该作者
本机进程直接用pipe管道,方便又快捷。
而且没有UDP的调包问题。

论坛徽章:
0
7 [报告]
发表于 2009-12-01 10:23 |只看该作者
感觉是否用UDP还是要看需求,未来可以分布到不同机器上

论坛徽章:
0
8 [报告]
发表于 2009-12-01 10:41 |只看该作者
既然一个包一个事务,干吗不用TCP?

论坛徽章:
0
9 [报告]
发表于 2009-12-01 12:34 |只看该作者
跑一下题,曾经有个大牛大神,XX研究部老大,人家写的网卡驱动,结果呢,shit代码连读写都没考虑,整天沉浸在生产者/消费者经典问题的哲学理论中,MD后来这个问题一直没解决,而是直接用了厂商板子上带的Linux。大牛的驱动出来了,很牛,大家就开始写应用了,大牛说,我的工作完成了,剩下就是你们的问题了。先是TCP的,后来总是丢数据,甚至收不到数据。大家议论纷纷,然后组织开会,却没有人怀疑大牛的驱动有问题。大牛说,我们是局域网,不需要TCP,基本上不会出现丢包的情况,重写吧,改用UDP。后来用UDP的效果还真的改善了,数据丢失虽然还存在,但情况好多了!
后来来个一个牛气哄哄的小牛,小牛说,驱动算什么?不就是按照数据结构写个read write么?结果,小牛的工作是把内核编译一下,然后小牛也就成了内核大牛。

论坛徽章:
0
10 [报告]
发表于 2009-12-01 12:40 |只看该作者
喜欢p阿姨跑题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP