社区
Linux/Unix社区
帖子详情
我要做一个网络通信的程序,会涉及到从几个连接接收数据,然后整合
superdai
2007-04-06 03:24:52
就象是一个tcp服务器,从几个不同的连接接收数据,我看了些样例,linux中都是要将连接fork成子进程,那么子连接接收的数据必定是在子进程当中,这样几个子进程再将数据进行组合(比如统一由父进程来处理),应该是要使用共享内存来做。
不知道有没兄弟知道这个的比较成熟的做法,我的思路是否正确?
...全文
340
6
打赏
收藏
我要做一个网络通信的程序,会涉及到从几个连接接收数据,然后整合
就象是一个tcp服务器,从几个不同的连接接收数据,我看了些样例,linux中都是要将连接fork成子进程,那么子连接接收的数据必定是在子进程当中,这样几个子进程再将数据进行组合(比如统一由父进程来处理),应该是要使用共享内存来做。 不知道有没兄弟知道这个的比较成熟的做法,我的思路是否正确?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superdai
2007-04-10
打赏
举报
回复
多谢楼上各位,受教了
worldnews
2007-04-09
打赏
举报
回复
如果是这种情况,我倒是建议楼主将接收和整合部分分开成两个独立的程序模块,两个程序模块间可以使用各种IPC进行通讯(比如消息队列,也可以使用第三方的中间件交互),接收的只接收,整合的只整合,这样会更便于以后扩展,也更符合unix下的设计思想。
hwz_119
2007-04-09
打赏
举报
回复
同意楼上,用什么方法实现还是要根据你的实际情况,如果客户端少,连接时间长的话推荐使用fork,安全稳定.CLIENT数目有最大数值的(不是越多越好的),连接时间比较长的这一类服务,用多THREAD几乎没有什么意义。 THREAD的优势是创建开始运行比进程快些(pthread_create比fork), 一旦运行起来,进程的切换和thread的切换差别没有什么。调度也都按进程做的。
THREAD因为共享了内存使得物理内存节省。然而进程本身也有共享的物理页(比如共享库部分)。
还有一开始用多THREAD在那里等着(池)。对于连接数量小并且固定的服务意义不大。正是因为共享内存,使得多THREAD程序的调试麻烦,运行稳定性不如进程。所以我建议,能不用THREAD尽量不用。如果必须用,也可以先不用--用进程,等都调试好了后在改THREAD。也不晚。
ylc8131
2007-04-08
打赏
举报
回复
并发量不是很大的话,或者对处理时间要求不严的情况下 单进程select或者poll就可以了,不用太复杂
并发量大的情况下肯定要用到多进程,进程间传递数据的方式有很多, 不一定要用共享内存,个人觉得消息队列比较好用,不用自己做互斥,呵呵
darkone
2007-04-06
打赏
举报
回复
正确,我这里处理消息量每天都在几千万,就是这种方式.子进程的优势在于可以一直保持服务端的端口稳定,不会因为进程处理消息意外core掉而影响其他客户端的服务
x86
2007-04-06
打赏
举报
回复
不妨使用多线程,这样就没有进程间通信的麻烦了。
计算机网络没有
接收数据
,"本地
连接
"有发送无
接收数据
的解决方法
"本地
连接
"有发送无
接收数据
的解决方法发布时间:2013-07-23 23:34:03 作者:佚名
我要
评论在日常的网络维护中,常常出现"本地
连接
"有发送无接收,这个故障曾经让我伤透脑筋,现在也没有
一个
正确的解决方案,而下面...
物联网实践教程:微信小
程序
结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和
接收数据
——AT指令
连接
OneNET MQTT设备(
整合
版)
本文详细讲解了如何利用51单片机结合ESP8266无线模块与各式传感器,构建
一个
多功能的物联网系统,实现远程数据监测及设备控制。通过教程的学习和实践,读者将能够通过微信小
程序
界面,远端实时查看温度、光照等关键...
计算机网络与通信Day01:数据通信,网络,
连接
类型,网络分类
1.数据通信系统的四个关键因素: 2.数据通信系统的五个组件 3、数据流 0x01 网络 1.分布式处理 2.网络准则: 3.
连接
类型: 网络拓扑结构: 1.全
连接
结构 Star结构: Bus结构: 0x02网络分类: 局域网:...
#项目实现相关# | Linux、C++ | Ubuntu环境下用linux语言实现两对虚拟串口多线程收发+网络收发
需求:由于目前需要实现
网络通信
,为后续将串口接收的数据上传
做
准备,因此需要先打通客户端服务器收发的
程序
,之后再将其和串口数据接收放在一起,用来实现终端的数据接收线程。 解决思路:所以通过对于之前简单...
java实现RS485通信
接收数据
(附带源码)
java实现RS485通信
接收数据
(附带源码)
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章