LINUX c++线程池框架

LINUX c++线程池框架 本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。 为什么需要线程池 目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。 传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建,即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线程,销毁线程的状态。 我们将传统方案中的线程执行过程分为三个过程:T1、T2、T3。 T1:线程创建时间 T2:线程执行时间,包括线程的同步等时间 T3:线程销毁时间 那么我们可以看出,线程本身的开销所占的比例为(T1+T3) / (T1+T2+T3)。如果线程执行的时间很短的话,这比开销可能占到20%-50%左右。如果任务执行时间很频繁的话,这笔开销将是不可忽略的。

flash Flex Socket 与 C++ 通讯 — 安全沙箱问题解决

最近一个项目的客户端要改成Flex,使用Socket与C++通讯时遇到了安全沙箱问题,这是我的解决方法;   1):策略文件与主套接字在同一端口,只需调用 Socket.connect() 或 XMLSocket.connect() 方法;   2):策略文件与主套接字在不同端口,需使用特殊的“xmlsocket”语法调用 Security.loadPolicyFile() 方法,如下所示: Security.loadPolicyFile(“xmlsocket://server.com:2525”); 先调用 Security.loadPolicyFile() 方法,然后再调用 Socket.connect() 或 XMLSocket.connect() 方法。

Flash Socket通信的安全策略问题 843端口

1、问题描述 将flash发布为html格式后,加载页面后,swf无法与服务器进行socket通信。Flash端显示的错误为: securityErrorHandler信息: [SecurityErrorEvent type=”securityError” bubbles=false cancelable=false eventPhase=2 text=”Error #2048″] 在服务器端显示的信息是由客户端尝试进行连接,但是无法接受数据。接受的数据显示为空。 2.问题原因: 最新的Flash player 9.0.124.0,当flash文件要进行socket通信的时候,需要向服务器端获取crossdomain.xml文件。如果找不到就出现客户端无法连接服务器的现象。 了解flash发起socket通信的三个过程 当封装在页面的flash发起socket通信请求的时候会先寻找服务器端的843端口,获取Crossdomain.xml文件,当服务器没有开启843的时候,flashPlayer会检查发起请求的swf文件中中有没有使用Security.loadPolicyFile来加载策略文件Crossdomain.xml,如果还是没有就会看这个发起请求的swf要连接的目标端口有没有策略文件。如果都没有那么连接失败,返回如上的出错提示。 为什么老版本的Flash player没有这个问题? 从一些官方的一些资料中了解了一下。以前的Flash Player无论你采用urlRequest的http请求方式或者xmlsocket socket方式,他们都共用一个安全策略文件。这个策略文件只要你放在主域的目录下就行了。而现在不行了,现在的策略文件如果你使用http请求方式那么需要把策略文件放在目录下面,如果你使用socket请求方式就必须通过socket端口来接收这个策略文件。 对应调用的方式为: http请求——》Security.loadPolicyFile(“http://www.xxx.com/crossdomain.xml”) socket或xmlsocket请求——》Security.loadPolicyFile(“xmlsocket://www.xxx.com:port”)

apache 配置详解

Apache的配置 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。 主站点的配置(基本配置) (1) 基本配置: ServerRoot “/mnt/software/apache2” #你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。 PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。 Listen 80 #服务器监听的端口号。 ServerName www.clusting.com:80 #主站点名称(网站的主机名)。 ServerAdmin admin@clusting.com #管理员的邮件地址。 DocumentRoot “/mnt/web/clusting” #主站点的网页存储位置。 以下是对主站点的目录进行访问控制: <Directory “/mnt/web/clusting”> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 在上面这段目录属性配置中,主要有下面的选项: Options:配置在特定目录使用哪些特性,常用的值和基本含义如下: ExecCGI: 在该目录下允许执行CGI脚本。 FollowSymLinks: 在该目录下允许文件系统使用符号连接。 Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。

PHP Liunx 服务安全防范方案

PHP100平均每个月都会有入侵或者攻击,我们做了很多工作,当然很多高手们还是可以入侵,这我们并不感到奇怪,因为我们相信天外有天,人外有人,虽然我们现在服务器还是稳定(高手们不要来喷了),我们把我们曾经做的一些安全操作分享给大家,包括linux安全,apache安全,和ningx安全等,如果有什么更好的建议,也可以邮件我,alanzhang@php100.net 本文将介绍网站服务器如何有效防御PHP木马攻击