易截截图软件、单文件、免安装、纯绿色、仅160KB

c/c++实现一个密集型server/socket多路复用select


作一个tcp的服务程序,同时可能有大量的客户端连上来,希望分别记住各个socket
谁有数据过来,就读出来,放到一个请求队列--这些事情用一个线程完成
 
另外有一个结果队列,如果结果里包含了socket的编号,用一个线程专门:
取出来按编号找回原来发送者socket,发回给原来的客户端
 
还有一个就是处理线程(池),它取出请求队列里的一个请求,进行处理,
把处理结果放入结果队列
 
不知道有没有现成的框架?
网上只找到一些很。。。的:
http://fanqiang.chinaunix.net/a4/b7/20010508/112359.html
Linux网络编程--9. 服务器模型
http://linuxc.51.net 作者:hoyt (2001-05-08 11:23:59)
 
    学习过《软件工程》吧.软件工程可是每一个程序员"必修"的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面,我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件,这样我们开发软件的效率才会高. 在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务器模型. 
 
循环服务器:循环服务器在同一个时刻只可以响应一个客户端的请求 
 
并发服务器:并发服务器在同一个时刻可以响应多个客户端的请求 
 
 
9.1 循环服务器:UDP服务器 
UDP循环服务器的实现非常简单:UDP服务器每次从套接字上读取一个客户端的请求,处理, 然后将结果返回给客户机. 
 
可以用下面的算法来实现. 
 
   socket(...);
   bind(...);
   while(1)
    {
         recvfrom(...);
         process(...);
         sendto(...);
   }
 
因为UDP是非面向连接的,没有一个客户端可以老是占住服务端. 只要处理过程不是死循环, 服务器对于每一个客户机的请求总是能够满足. 
9.2 循环服务器:TCP服务器 
TCP循环服务器的实现也不难:TCP服务器接受一个客户端的连接,然后处理,完成了这个客户的所有请求后,断开连接. 
 
算法如下: 
 
   &nb


相关文档:

【入门】用Linux中man命令查询C函数

      大家都知道在Unix/Linux中有个man命令,可以查询常用的命令,函数。可是对于我们这样只知道用"man 函数名"来查询的人来说,会遇到很多问题,比如:
      man read,我想看的是ANSI C中stdio的read函数原型和说明,没想到出来的确是BASH命令的说明,这是怎么回事 ......

flashpolicyd c 版本

#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <getopt.h>
#define MAX_READFILE 24
#define MAX_INPUTFILE 10240
char *file ;
void time_out(){
syslog(LOG_INFO,"read inp ......

C读取文件的一行

刚刚完成的C读取文件一行数据,可以读大量数据的行。
/*
函数功能:
   读取文件的一行,当开辟内存不够时return值为-1,size会给出至少需要的内存大小,
      return值为1时表示此时文件结束,从buffer,size得到最后一行的数据和大小。
输入参数:
   stream:文件流 ......

详解C盘Windows文件夹里重要文件的作用

详解C盘Windows文件夹里重要文件的作用 
在整个Windows操作系统中,最重要的莫过于“Windows”文件夹,对电脑进行任何操作几乎都有关。了解这里对于掌握整个系统的运作有很大的作用,如果有兴趣不妨往下看看。
一、印象中的Windows文件夹
“Windows”文件夹给人的第一印象就是大而乱,感觉里面 ......

语言混编之c调用java

经过验证可以实现,先将实现代码贴出,以备以后使用。
本文默认你的java开发环境已经安装成功,并且对于java语言和c++语言有过了解。
编写测试用类:Demo.java
代码如下:
public class Demo
{
 public static int COUNT = 8;
 
 private String msg;
 private int[] counts;
 
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号