多进程并发编程--消息传递服务器

      开发平台: linux,ubuntu
      开发工具: gedit
      开发语言: c/c++, uc
      使用技术: 进程,管道,共享内存,套节字,信号,文件
      项目描述: 建立CSocket类,封装了套节字的创建,绑定,监听,关闭。CEpoll_event类,封装了内核事件表的创建,事件集,
                        控制,添加,销毁,监听事件,建立文件文件描述符控制类CFileDescriptorCtl,负责将套节字或者管道等等其他文件描述
                        符,需要设置为非阻塞的,设置为非阻塞,该实例采用epoll的边缘触发,而不是电平触发,当有信号发出的时候,为了避
                        免信号处理函数时间过长,而导致操作系统过长的不再发出该信号,采用管道在信号处理函数里在写端写入信号,在管道
                        里将信号送给主进程,让主进程处理,这样就可以避免操作系统过长时间不再发送该信号,然后向内核事件表中注册相应
                        的事件,然后用CEpoll_Event中的事件监听成员函数,监听事件,然后根据事件作出相应的处理,当监听到当有连接接入的
                        时候,接受连接,fork子进程,让子进程处理该连接,然后在子进程中创建一个套节字管道(全双工),负责父子进程通信,
                        然后再
                        在主进程中创建一块内存。用于共享数据(mmap), 然后,子进程中也采用epoll的边缘触发模式,监听该事件表中的事件
                        当EPOLLIN事件被触发的时候,接受数据,将其存到相应的共享数据然后通过套节字管道,发送该内存的标识,由主进程
                        负责向除本身连接的其他连接发送内存标识,然后其他子进程,就根据该标识拿到数据,发送到相应的客户端
     心得体会: 体会了epoll,管道,内存等一些的使用,感觉这是一个模板,不同的是发送的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值