功能:目前只支持对资源的访问. 使用的模型:多线程加epoll,与传统的一个连接请求一个线程处理不同的是,这个模型只为那些需要服务的连接请求调用线程进行处理, 整个模型的大致流程 创建一个线程持对象,将每一个线程池设为脱离线程,这样,在线程结束后,可以自动回收资源,每一个调用线程都在等一个信号,这个线程池有一个工作队列,每往里面加一个连接请求,就让信号量 加一,得到这个信号量的线程就开始处理连接请求. 创建一个epoll句柄,先将server socket fd加入到epoll中,进行监听,当s…
转自:http://blog.csdn.net/baby313/article/details/7353605 本文会带领着你一步步动手实现一个简单的RTP传输服务器,旨在了解RTP流媒体传输协议以及一些关于多媒体编解码的知识. 关于RTP协议的必备知识 要动手实现一个协议,当然首先需要阅读该协议的文档.RTP协议的文档,有rfc1889.rfc1890.rfc3550,其中rfc3550是现在的版本,另外两个是过期版.这个协议可以在ietf的官网找到:http://tools.ietf.org…
上一篇文章我们介绍了如何用一个简单的UDP socket搭建一个RTP服务器.我把这份80行的代码呈现到客户面前的时候,就有人不满意了. 还有人在参考的时候会问:“楼主你的TS格式的文件是哪里来的?应该去哪里下载?”“这也太简单了吧,不就是用UDP把TS文件发过去么?就这么几十行代码也算个大作业?”“平时看的视频格式哪有TS的呀,不是avi就是mp4.rmvb什么的,根本不实用啊!”   首先回答问题1: 如果你用过强大的ffmpeg,就可以用一行简单的命令 ffmpeg -i INPUTFIL…
上一篇文章我们介绍了关于RTP协议的知识,那么我们现在就自己写一个简单的传输TS流媒体的RTP服务器吧. 预备知识 关于TS流的格式:TS流封装的具体格式请参考文档ISO/IEC 13818-1.这里我们只需要了解一些简单的信息就好.首先TS流是有许多的TS Packet组成的,每个TS Packet的长度固定为188 bytes,每个packet都是以sync_byte:0x47开头. MTU(Maximum Transmission Unit): 最大传输单元.是指一种通信协议的某一层上面所…
关于http报文格式请看这篇文章 //http_conn.h #ifndef HTTPCONNECTION_H #define HTTPCONNECTION_H #include <unistd.h> #include <signal.h> #include <sys/types.h> #include <sys/epoll.h> #include <fcntl.h> #include <sys/socket.h> #include…
创建一个线程池,每有一个连接对象就将它添加到工作队列中,线程池中的线程通过竞争来取得任务并执行它(它是通过信号量实现的). //filename threadpool.h #ifndef THREADPOOL_H #define THREADPOOL_H #include <list> #include <cstdio> #include <exception> #include <pthread.h> #include <locker.h> t…
我们会继续上传新书<自己动手写处理器>(未公布).今天是第十条.我每星期试试4 从本章開始将一步一步地实现教学版OpenMIPS处理器.本章给出了教学版OpenMIPS的系统蓝图,首先介绍了系统的设计目标,当中具体说明了OpenMIPS处理器计划实现的5级流水线. 3.2节给出了OpenMIPS处理器的接口示意图,及各个接口的作用. 3.3节简单解释了各个源码文件的作用.最后描写叙述了OpenMIPS处理器的实现方法,读者将发现本书给出的实现方法与现有书籍的方法全然不同,更加易于理解.便于实践…
Java自己动手写连接池三,核心代码; package com.kama.cn; import java.sql.Connection;import java.util.ArrayList;import java.util.List; public class ConnectionPool { //数据库连接 private static ConnectionPool connectionPool=new ConnectionPool(); public List<Connection> po…
在之前的博客中提到过看到html5 的websocket后很感兴趣,终于可以摆脱长轮询(websocket之前的实现方式可以看看Developer Works上的一篇文章,有简单提到,同时也说了websocket基本概念)等方式做一个山寨版的web聊天室. 什么是websocket WebSocket 协议是html5引入的一种新的协议,其目的在于实现了浏览器与服务器全双工通信.看了上面链接的同学肯定对过去怎么低效率高消耗(轮询或comet)的做此事已经有所了解了,而在websocket API…
一.前面的话 在上一篇博文自己动手写工具----XSmartNote [Beta 3.0]中,用到了若干个自定义控件,其中包含用于显示Note内容的简单的Label扩展控件,用于展示标签内容的label扩展控件,还有包含自定义事件的含checkbox的控件.自定义控件的好处就是其灵活程度很高,不但可以扩展控件的外观,还可以扩展控件的事件,甚至从底层拦截Windows消息进行处理,这也是我喜欢自己写控件的原因.至于自定义控件的几种形式在这里就不说了,有兴趣的小伙伴可以百度一下,下面来看看这些控件的…