(原)ubuntu 9.10 安装 asio库

首先将源

deb http://cz.archive.ubuntu.com/ubuntu karmic main 

添加到/etc/apt/sources.list文件中,然后就可以安装了,命令:

sudo apt-get install libasio-dev

卸载:

sudo apt-get remove libasio-dev

 

继续阅读

(转)LINUX 网络编程之Daemon设计

引言

通常一个服务端程序是不会在前台运行的,而是作为系统服务在后台运行,并随系统启动而启动。这就是我们常说的Daemon程序,又称为守护进程,这种程序由于没有控制终端是无法与前台交互的,但我们随时可以通过系统日志来查看它的状态。下面将讲述在Linux下编写Daemon程序的步骤,并给出了例子程序。

继续阅读

(引)并发网络编程学习之路(三):多线程与进线池

多线程:http://blog.csdn.net/celineshi/archive/2007/06/28/1670205.aspx

线程池:http://blog.csdn.net/axman/archive/2007/01/12/1481197.aspx    

继续阅读

(转)并发网络编程学习之路(二):多进程与进程池(续)

转自:http://book.51cto.com/art/200903/114895.htm

3.3共享内存

3.3.1共享内存的概念

        在系统内核为一个进程分配内存地址进,通过分布机制可以让一个进程的物理地址不连续,同时也可以让一段内存同时分配给不同的进程。共享机制就是通过该原理来实现的,共享内存机制只是提供数据的传送,如何控制服务器端和客户端的读写操作互斥,这就需要一些其他的辅助工具,例如记录锁。

继续阅读

(整理)并发编程之一:多进程

        多进程编程的主要内容包括进程控制和进程间通信:

一、Linux下进程控制

        在传统的Unix环境下,有两个基本的操作用于创建和修改进程:

         fork():用来创建一个新的进程,该进程几乎是当前进程的一个完全拷贝;

         exec函数族:用来启动外部程序以取代当前的进程(由于此类函数并不是只有一个,而是六个,所以统称exec函数族)。

继续阅读

(转)I/O多路复用详解(三)

 4、epoll 

    在linux的网络编程中,很长的一段时间都在使用select来做事件触发。然而select逐渐暴露出了一些缺陷,使得linux不得不在新的内核中寻找出替代方案,那就是epoll。其实,epoll与select原理类似,只不过,epoll作出了一些重大改进,即:

继续阅读

(摘)I/O多路复用详解(二)

 2、pselect函数

     pselect函数是由POSIX发明的,如今许多Unix变种都支持它。 

继续阅读

(摘)I/O多路复用详解(一)

        要想完全理解I/O多路复用,需先要了解I/O模型:

一、五种I/O模型

1、阻塞I/O模型

     最流行的I/O模型是阻塞I/O模型,缺省情形下,所有套接口都是阻塞的。

继续阅读

(原)Socket API 编程模型

      在网络程序里面,一般的来说都是许多客户机对应一个服务器。为了处理客户机的请求,对服务端的程序就提出了特殊的要求。我们学习一下目前最常用的服务器模型:

      循环服务器:循环服务器在同一个时刻只可以响应一个客户端的请求 。

      并发服务器:并发服务器在同一个时刻可以响应多个客户端的请求 。

继续阅读