问一下,大家在网络编程中。进程间通讯是怎么做的。

bcb_alone 2005-08-18 11:10:55
假如,有一个接收数据的进程。
一个处理数据,然后发送数据的进程。
它们之间如何传递数据的。
是用消息队列?
还是共享内存的方式。
我主要想知道,一般用消息队列的情况。
如有代码示例,更好,谢谢啦!
...全文
80 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
freebob2000 2005-08-18
多线程
用信号量通信
回复
younggle 2005-08-18
使用多线程就可以就了,没有必要使用多进程。
参考一下,有源代码的:
http://www.vczx.com/article/show.php?id=1041
回复
newbiestar 2005-08-18
使用多线程比较明智。

多进程比较麻烦的就在于进程间通讯,因为每一个进程有自己的进程空间,都是互相独立的,这样的话就造成了必须使用额外的方法来进行进程间的数据交换。而多线程都在同样的一个进程中,这样的话可以使用同样的进程空间,数据交换方便多了。

如果一定要使用多进程的话,需要使用进程间通讯机制来进行通讯,譬如pipe(不知道Windows的pipe语义是否和POSIX的一致,如果一致的话,需要通讯的进程有共同的祖先进程),named pipe可以解决上面的问题。另外,其实socket也是一种进程间通讯机制,但是一般用在两个进程不在一个主机的情况下。
回复
DentistryDoctor 2005-08-18
这种情况应该用多线程吧。如果是用多进程,考虑一下FileMapping.
回复
i_noname 2005-08-18
网络编程用多线程吧?多进程处理?
进程间通信用filemapping
回复
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-08-18 11:10
社区公告
暂无公告