此工程是一个基于System V 共享内存的进程间通信框架, 压缩包中提供了源码及相应的示例程序、说明文档。   协议概述: 采用System V共享内存做进程间通讯。 因为共享内存仅仅提供了进程间的数据通道, 如果要想实现数据的传输,必须要为其定义传输的协议。...">
Home » Source Code » System v shared memory based inter-process communication framework

System v shared memory based inter-process communication framework

myzlr
2014-10-13 09:07:19
The author
View(s):
Download(s): 0
Point (s): 1 
Category Category:
Linux programmingLinux programming CC

Description

size:14px;">此工程是一个基于System V 共享内存的进程间通信框架,

压缩包中提供了源码及相应的示例程序、说明文档。

 

协议概述:

采用System V共享内存做进程间通讯。

因为共享内存仅仅提供了进程间的数据通道,

如果要想实现数据的传输,必须要为其定义传输的协议。


我们定义的协议共分4层:

第一层:

  1. 指定大小的共享内存的创建,打开和销毁

  2. 定义共享内存的数据结构:

用来控制数据读写的读写锁,条件变量,时间戳(精确到微妙)

用来标识读、写方进程的program idprocess id

内核为共享内存分配的shmid,数据长度和数据区。

3.实现数据的读写锁定和单播,广播的信号发送。

第二层:实现数据的收发控制,并做超时处理。

每个写入共享内存的数据都要标识读、写方进程的program idprocess id

和时间戳,并在写入完成的时候向所有正在监听的进程发送信号,

当进程收到信号后就会根据program id process id判断数据是否是给自己的,是的话就处理,否则继续监听,监听时会指定监听超时的时间,单位是毫秒,一旦超时就结束监听

第三层定义消息的格式,实现消息的封装、解析和处理

将消息中的数据定义类型,长度及其它标识,这样可以将多个数据封装在一个消息中,而且可以为每类数据定义处理函数,接收时自动处理。

第四层:

客户端:封装请求到相应类型的数据,并定义希望执行的操作

服务端:解析请求并为每类数据定义响应动作


这一层的协议完全通信双方的使用者协商定义,后面给出的只是一种实现,用户可以根据自己的需要修改

Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
ipcdef.h564.00 B30-09-14|14:24
ipcmsg.c19.01 kB30-09-14|09:55
ipcmsg.h3.92 kB30-09-14|13:28
ipcmsg_query_req.c11.68 kB30-09-14|16:43
ipcmsg_query_req.h1.79 kB30-09-14|13:27
shmem_msg.c10.76 kB28-09-14|15:11
shmem_msg.h1.50 kB29-09-14|13:10
system_v_shmem.c4.08 kB29-09-14|12:42
system_v_shmem.h1.24 kB30-09-14|09:40
ipcmsg_client29.74 kB30-09-14|11:49
ipcmsg_client.c5.52 kB30-09-14|13:34
ipcmsg_server29.27 kB30-09-14|11:49
ipcmsg_server.c4.41 kB30-09-14|13:37
Makefile822.00 B30-09-14|11:27
shmmsg_client28.58 kB30-09-14|11:49
shmmsg_client.c1.52 kB28-09-14|15:05
shmmsg_server28.58 kB30-09-14|11:49
shmmsg_server.c1.38 kB28-09-14|15:07
shm_ipcmsg.IAB44.00 kB26-09-14|17:12
shm_ipcmsg.IAD728.00 B26-09-14|17:12
shm_ipcmsg.IMB12.00 kB26-09-14|15:26
shm_ipcmsg.IMD448.00 B26-09-14|15:26
shm_ipcmsg.PFI68.00 B30-09-14|16:43
shm_ipcmsg.PO776.00 B30-09-14|16:43
shm_ipcmsg.PR6.29 kB26-09-14|15:26
shm_ipcmsg.PRI38.05 kB26-09-14|15:26
shm_ipcmsg.PS77.60 kB30-09-14|17:53
shm_ipcmsg.SearchResults4.55 kB28-09-14|12:53
shm_ipcmsg.WK349.13 kB30-09-14|17:53
thread_pool.c6.48 kB23-09-14|17:16
thread_pool.h1.05 kB13-09-14|13:06
utility.c4.48 kB26-09-14|15:01
utils.h637.00 B26-09-14|14:59
ipcmsg0.00 B30-09-14|14:47
utils0.00 B26-09-14|14:35
shm_ipcmsg0.00 B30-09-14|17:27
说明.doc117.76 kB10-10-14|18:15
...
Sponsored links

Comments

(Add your comment, get 0.1 Point)
Minimum:15 words, Maximum:160 words
  • 1
  • Page 1
  • Total 1

System v shared memory based inter-process communication framework (108.77 kB)

Need 1 Point(s)
Your Point (s)

Your Point isn't enough.

Get 22 Point immediately by PayPal

Point will be added to your account automatically after the transaction.

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more Points

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D