??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲中文久久精品无码,欧美伊人久久大香线蕉综合69,国产精品久久久久9999高清http://www.shnenglu.com/huangjianfu/category/10614.html|络信息安全zh-cnFri, 25 Nov 2011 03:29:05 GMTFri, 25 Nov 2011 03:29:05 GMT60mysql~译安装http://www.shnenglu.com/huangjianfu/archive/2011/11/22/160672.html黄剑?/dc:creator>黄剑?/author>Tue, 22 Nov 2011 00:52:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2011/11/22/160672.htmlhttp://www.shnenglu.com/huangjianfu/comments/160672.htmlhttp://www.shnenglu.com/huangjianfu/archive/2011/11/22/160672.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/160672.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/160672.html1、tcmalloc是什?
2、安装tcmalloc

二、mysql
1、mysql的编?br />
2、把tcmalloc~译到mysql?br />
三、memcache
1、memcache是什么?
2、安装memcache

]]>
printf格式控制W的完整格式http://www.shnenglu.com/huangjianfu/archive/2011/04/26/145063.html黄剑?/dc:creator>黄剑?/author>Tue, 26 Apr 2011 08:18:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2011/04/26/145063.htmlhttp://www.shnenglu.com/huangjianfu/comments/145063.htmlhttp://www.shnenglu.com/huangjianfu/archive/2011/04/26/145063.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/145063.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/145063.htmlprintf的格式控制的完整格式Q?br>%  -  0  m.n  l或h  格式字符
下面对组成格式说明的各项加以说明Q?br>?Q表C格式说明的起始W号Q不可缺?br>?Q有-表示左对齐输出,如省略表C右寚w输出?br>?Q有0表示指定IZ?,如省略表C指定空位不填?br>④m.nQm指域宽,卛_应的输出在输出讑֤上所占的字符数。N指精度。用于说明输出的实型数的数位数。ؓ(f)指定nӞ隐含的精度ؓ(f)n=6位?br>⑤l或h:lҎ(gu)型指long型,对实型指double型。h用于整型的格式字符修正为short型?br>
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br>格式字符
格式字符用以指定输出的数据cd和输出格式?br> ①d格式Q用来输出十q制整数。有以下几种用法Q?br>%dQ按整型数据的实际长度输出?br>%mdQm为指定的输出字段的宽度。如果数据的位数于mQ则左端补以I格Q若大于mQ则按实际位数输出?br>%ldQ输出长整型数据?br>②o格式Q以无符号八q制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度?#8220;%mo”格式输出?br>例:(x)
   main()
   { int a = -1;
     printf("%d, %o", a, a);
   }
  q行l果Q?1,177777
  E序解析Q?1在内存单元中Q以补码形式存放Qؓ(f)(1111111111111111)2Q{换ؓ(f)八进制数?177777)8?br>③x格式Q以无符号十六进制Ş式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度?%mx"格式输出?br>④u格式Q以无符号十q制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度?#8220;%mu”格式输出?br>⑤c格式Q输Z个字W?br>⑥s格式Q用来输Z个串。有几中用法
%sQ例?printf("%s", "CHINA")输出"CHINA"字符Ԍ不包括双引号Q?br>%msQ输出的字符串占m列,如字W串本n长度大于mQ则H破获m的限?字W串全部输出。若串长于mQ则左补I格?br>%-msQ如果串长小于mQ则在m列范围内Q字W串向左靠,双I格?br>%m.nsQ输出占m列,但只取字W串中左端n个字W。这n个字W输出在m列的右侧Q左补空根{?br>%-m.nsQ其中m、n含义同上Qn个字W输出在m列范围的左侧Q右补空根{如果n>mQ则自动取n|即保证n个字W正常输出?br>⑦f格式Q用来输出实敎ͼ包括单、双_ֺQ,以小数Ş式输出。有以下几种用法Q?br>%fQ不指定宽度Q整数部分全部输出ƈ输出6位小数?br>%m.nfQ输出共占m列,其中有n位小敎ͼ如数值宽度小于m左端补空根{?nbsp;
%-m.nfQ输出共占n列,其中有n位小敎ͼ如数值宽度小于m右端补空根{?br>⑧e格式Q以指数形式输出实数。可用以下Ş式:(x)
%eQ数字部分(又称数Q输?位小敎ͼ指数部分?位或4位?br>%m.ne?-m.neQm、n?#8221;-”字符含义与前相同。此处n指数据的数字部分的小C敎ͼm表示整个输出数据所占的宽度?br>⑨g格式Q自动选f格式或e格式中较短的一U输出,且不输出无意义的零?br>
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br>关于printf函数的进一步说明:(x)
如果惌出字W?%",则应该在“格式控制”字符串中用连l两?表示Q如:
printf("%f%%", 1.0/3);
输出0.333333%?br>
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q?br>对于单精度数Q?f格式W输出时Q仅?位是有效数字Q小?位.
对于双精度数Q?lf格式W输出时Q前16位是有效数字Q小?位.

######################################N########################################
由高手指?br>对于m.n的格式还可以用如下方法表C(例)(j)
char ch[20];
printf("%*.*s\n",m,n,ch);
前边?定义的是ȝ宽度Q后边的定义的是输出的个数。分别对应外面的参数m和n 。我惌U方法的好处是可以在语句之外对参数m和n赋|从而控制输出格式?


今天(06.6.9)又看CU输出格?%n 可以所输出字符串的长度Dl一个变? 见下?

int slen;

printf("hello world%n", &slen);

执行后变量被赋gؓ(f)11?br>
又查?jin)一? 看到一文?查看)说这U格式输出已l确认ؓ(f)一个安全隐(zhn),q且已禁用。再搜搜果然q种用法都被用来搞什么溢出、漏z之cȝQ随便找?jin)一个:(x)格式化字W串dW记?/font>

]]>
Creating Simple ISAPI Extensionshttp://www.shnenglu.com/huangjianfu/archive/2010/01/12/105465.html黄剑?/dc:creator>黄剑?/author>Tue, 12 Jan 2010 01:15:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2010/01/12/105465.htmlhttp://www.shnenglu.com/huangjianfu/comments/105465.htmlhttp://www.shnenglu.com/huangjianfu/archive/2010/01/12/105465.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/105465.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/105465.htmlsource:http://msdn.microsoft.com/en-us/library/ms524352.aspx
For an ISAPI extension to be used by IIS, it must provide a standard interface. To provide a standard interface, each ISAPI extension DLL must implement and export two primary functions, GetExtensionVersion and HttpExtensionProc. A third function, TerminateExtension, is optional and is commonly used by extensions to perform cleanup operations.

Initialization Using GetExtensionVersion
Initialization is handled by the entry-point function GetExtensionVersion. This function's role is to perform all initialization, including the creation of worker threads, synchronization objects, and database connections, and to establish the version of ISAPI that was used to build the DLL.

Adding Functionality Using HttpExtensionProc

In general, an extension's functionality is exposed through the HttpExtensionProc entry-point function. This function receives a pointer to an EXTENSION_CONTROL_BLOCK structure, which contains data used for the required processing and is also used by the extension to communicate with IIS.
When HttpExtensionProc in employed, it should first send a response header to the client. The header provides the client with information, such as the content type that is returned. After the header is sent, any other processing can be performed through the various callback functions provided in the EXTENSION_CONTROL_BLOCK.

Termination Using TerminateExtension

When an extension is no longer needed, IIS removes it from memory. If the extension provides the TerminateExtension function, IIS calls it before removing the extension. Use of TerminateExtension is recommended to close down any threads that an extension initialized during processing.

After IIS finishes processing a request for an ISAPI extension, the connection can either be closed or kept open. A request can specify that the connection remain open by specifying the Connection: Keep-Alive header. If an ISAPI extension is designed to support Keep-Alive requests, this should be indicated to the client by calling the HSE_REQ_SEND_RESPONSE_HEADER server support function. The specified response header should contain Connection: Keep-Alive.



]]>
WebService WSDLl构分析http://www.shnenglu.com/huangjianfu/archive/2009/11/05/100194.html黄剑?/dc:creator>黄剑?/author>Thu, 05 Nov 2009 04:24:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2009/11/05/100194.htmlhttp://www.shnenglu.com/huangjianfu/comments/100194.htmlhttp://www.shnenglu.com/huangjianfu/archive/2009/11/05/100194.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/100194.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/100194.htmlWSDL (Web Services Description Language,Web服务描述语言)是一UXML ApplicationQ他Web服务描述定义Zl服务访问点Q客L(fng)可以通过q些服务讉K点对包含面向文档信息或面向过E调用的服务q行讉K(cMq程q程调用)。WSDL首先对访问的操作和访问时使用的请?响应消息q行抽象描述Q然后将其绑定到具体的传输协议和消息格式上以最l定义具体部|的服务讉K炏V相关的具体部v的服务访问点通过l合成为抽象的Web服务?本文详l讲解WSDL文的结构,q分析每个元素的作用?
一QWSDL定义

    WSDL是一个用于精描qWeb服务的文,W(xu)SDL文是一个遵循WSDL XML模式的XML文。WSDL 文Web服务定义为服务访问点或端口的集合。在 WSDL 中,׃服务讉K点和消息的抽象定义已从具体的服务部v或数据格式绑定中分离出来Q因此可以对抽象定义q行再次使用Q消息,指对交换数据的抽象描qͼ而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了(jin)可以再次使用的绑定。将Web讉K地址与可再次使用的绑定相兌Q可以定义一个端口,而端口的集合则定义ؓ(f)服务?/p>

   一个WSDL文通常包含7个重要的元素Q即types、import、message、portType、operation、binding?service元素。这些元素嵌套在definitions元素中,definitions是WSDL文的根元素。文章的下一部分会(x)详细介绍WSDL 的基本结构?/p>

二:(x)WSDL的基本结?-概述

如第一部分最后描q的那样Q一个基本的WSDL文档包含7个重要的元素。下面将分别介绍q几个元素以?qing)他们的作用?/p>

WSDL 文在Web服务的定义中使用下列元素Q?/p>

Types - 数据cd定义的容器,它用某U类型系l?一般地使用XML Schema中的cdpȝ)?
Message - 通信消息的数据结构的抽象cd化定义。用Types所定义的类型来定义整个消息的数据结构?
Operation - Ҏ(gu)务中所支持的操作的抽象描述Q一般单个Operation描述?jin)一个访问入口的h/响应消息寏V?
PortType - 对于某个讉K入口点类型所支持的操作的抽象集合Q这些操作可以由一个或多个服务讉KҎ(gu)支持?
Binding - 特定端口cd的具体协议和数据格式规范的绑定?
Port - 定义为协?数据格式l定与具体Web讉K地址l合的单个服务访问点?
Service- 相关服务讉K点的集合?
  可以参考下图来理解一下WSDL的文结构图Q?/p>

WSDL的xml schema可以参照如下|址Q?a >http://schemas.xmlsoap.org/wsdl/

三:(x)WSDL的基本结?-详述

本节通过一个例子详l描qWSDL文每个元素的作用。下面一个例子是一个简单的WSDL文档的内容,该文档的产生可以参见我的另外一文章:(x)xfire开发实?-HelloWorld??/p>

一个简单的Web Service的WSDL文档Q该服务支持名ؓ(f)sayHello的唯一操作Q该操作通过在http上运行SOAP协议来实现的。该h接受一个字W串nameQ经q处理后q回一个简单的字符丌Ӏ文如下:(x)

<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions
    targetNamespace="    xmlns:tns="    xmlns:wsdlsoap="    xmlns:soap12="    xmlns:xsd="    xmlns:soapenc11="    xmlns:soapenc12="    xmlns:soap11="    xmlns:wsdl="    <wsdl:types>
        <xsd:schema xmlns:xsd="
            attributeFormDefault="qualified" elementFormDefault="qualified"
            targetNamespace="
            <xsd:element name="sayHello">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1"
                            name="name" nillable="true" type="xsd:string" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="sayHelloResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1"
                            name="out" nillable="true" type="xsd:string" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="sayHelloResponse">
        <wsdl:part name="parameters" element="tns:sayHelloResponse" />
    </wsdl:message>
    <wsdl:message name="sayHelloRequest">
        <wsdl:part name="parameters" element="tns:sayHello" />
    </wsdl:message>
    <wsdl:portType name="HelloServicePortType">
        <wsdl:operation name="sayHello">
            <wsdl:input name="sayHelloRequest"
                message="tns:sayHelloRequest" />
            <wsdl:output name="sayHelloResponse"
                message="tns:sayHelloResponse" />
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="HelloServiceHttpBinding"
        type="tns:HelloServicePortType">
        <wsdlsoap:binding style="document"
            transport="
        <wsdl:operation name="sayHello">
            <wsdlsoap:operation soapAction="" />
            <wsdl:input name="sayHelloRequest">
                <wsdlsoap:body use="literal" />
            </wsdl:input>
            <wsdl:output name="sayHelloResponse">
                <wsdlsoap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="HelloService">
        <wsdl:port name="HelloServiceHttpPort"
            binding="tns:HelloServiceHttpBinding">
            <wsdlsoap:address
                location="
http://localhost:8080/xfire/services/HelloService" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
♦ types元素使用XML模式语言声明在WSDL文中的其他位置使用的复杂数据类型与元素Q?/p>

♦ import元素cM于XML模式文中的import元素Q用于从其他WSDL文档中导入WSDL定义Q?/p>

♦ message元素使用在WSDL文档的type元素中定义或在import元素引用的外部WSDL文中定义的XML模式的内|类型、复杂类型或元素描述?jin)消息的有效负蝲Q?/p>

♦ portType元素和operation元素描述?jin)Web服务的接口ƈ定义?jin)他的方法。portType元素和operation元素cM?java接口和接口中定义的方法声明。operation元素使用一个或者多个messagecd来定义他的输入和输出的有效负载;

♦ Binding元素portType元素和operation元素赋给一个特D的协议和编码样式;

♦ service元素负责Internet地址赋给一个具体的l定Q?/p>

1、definitions元素

所有的WSDL文的根元素均是definitions元素。该元素装?jin)整个文,同时通过其name提供?jin)一个WSDL文档。除?jin)提供一个命名空间外Q该元素没有其他作用Q故不作详细描述?/p>

下面的代码是一个definitions元素的结构:(x)

<wsdl:definitions
    targetNamespace="    xmlns:tns="    xmlns:wsdlsoap="    xmlns:soap12="    xmlns:xsd="    xmlns:soapenc11="    xmlns:soapenc12="    xmlns:soap11="    xmlns:wsdl="</wsdl:definitions>
2、types元素

 WSDL采用?jin)W3C XML模式内置cd作ؓ(f)其基本类型系l。types元素用作一个容器,用于定义XML模式内置cd中没有描q的各种数据cd。当声明消息部分的有效负载时Q消息定义用了(jin)在types元素中定义的数据cd和元素。在本文的WSDL文档中的types定义Q?/p>

 

<wsdl:types>
        <xsd:schema xmlns:xsd="
            attributeFormDefault="qualified" elementFormDefault="qualified"
            targetNamespace="
            <xsd:element name="sayHello">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1"
                            name="name" nillable="true" type="xsd:string" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="sayHelloResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1"
                            name="out" nillable="true" type="xsd:string" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </wsdl:types>
上面是数据定义部分,该部分定义了(jin)两个元素Q一个是sayHelloQ一个是sayHelloResponseQ?/p>

sayHelloQ定义了(jin)一个复杂类型,仅仅包含一个简单的字符Ԍ来用来描述操作的参入传入部分;

sayHelloResponseQ定义了(jin)一个复杂类型,仅仅包含一个简单的字符Ԍ来用来描述操作的返回|

3、import元素

import元素使得可以在当前的WSDL文档中用其他WSDL文中指定的命名I间中的定义元素。本例子中没有用import元素。通常在用户希望模块化WSDL文的时候,该功能是非常有效果的?/p>

import的格式如下:(x)

<wsdl:import namespace="        <wsdl:part name="parameters" element="tns:sayHelloResponse" />
    </wsdl:message>
    <wsdl:message name="sayHelloRequest">
        <wsdl:part name="parameters" element="tns:sayHello" />
    </wsdl:message>
该部分是消息格式的抽象定义:(x)定义?jin)两个消息sayHelloResponse和sayHelloRequestQ?/p>

sayHelloRequestQsayHello操作的请求消息格式,׃个消息片断组成,名字为parameters,元素是我们前面定义的types中的元素Q?/p>

sayHelloResponseQsayHello操作的响应消息格式,׃个消息片断组成,名字为parameters,元素是我们前面定义的types中的元素Q?/p>

 如果采用RPC样式的消息传递,只需要将文中的element元素应以修改为type卛_?/p>

5、portType元素

portType元素定义?jin)Web服务的抽象接口。该接口有点cMJava的接口,都是定义?jin)一个抽象类型和Ҏ(gu)Q没有定义实现。在WSDL中, portType元素是由binding和service元素来实现的Q这两个元素用来说明Web服务实现使用的Internet协议、编码方案以?Internet地址?/p>

一个portType中可以定义多个operationQ一个operation可以看作是一个方法,本文中WSDL文的定义:(x)

    <wsdl:portType name="HelloServicePortType">
        <wsdl:operation name="sayHello">
            <wsdl:input name="sayHelloRequest"
                message="tns:sayHelloRequest" />
            <wsdl:output name="sayHelloResponse"
                message="tns:sayHelloResponse" />
        </wsdl:operation>
    </wsdl:portType>
portType定义?jin)服务的调用模式的类型,q里包含一个操作sayHelloҎ(gu)Q同时包含input和output表明该操作是一个请求/响应模式Q请求消息是前面定义的sayHelloRequestQ响应消息是前面定义的sayHelloResponse。input表示传递到Web服务的有效负载,output消息表示传递给客户的有效负载?/p>

Q、binding

binding元素一个抽象portType映射Cl具体协?SOAO和HTTP)、消息传递样式、编码样式。通常binding元素与协议专有的元素和在一起用,本文中的例子Q?/p>

    <wsdl:binding name="HelloServiceHttpBinding"
        type="tns:HelloServicePortType">
        <wsdlsoap:binding style="document"
            transport="
        <wsdl:operation name="sayHello">
            <wsdlsoap:operation soapAction="" />
            <wsdl:input name="sayHelloRequest">
                <wsdlsoap:body use="literal" />
            </wsdl:input>
            <wsdl:output name="sayHelloResponse">
                <wsdlsoap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
q部分将服务讉K点的抽象定义与SOAP HTTPl定Q描q如何通过SOAP/HTTP来访问按照前面描q的讉K入口点类型部|的讉K入口。其中规定了(jin)在具体SOAP调用Ӟ应当使用的soapAction?"?/p>

具体的用需要参考特定协议定义的元素?/p>

Q、service元素和port元素

service元素包含一个或者多个port元素Q其中每个port元素表示一个不同的Web服务。port元素URL赋给一个特定的bindingQ甚臛_以两个或者多个port元素不同的URL赋值给相同的binding。文中的例子:(x)

    <wsdl:service name="HelloService">
        <wsdl:port name="HelloServiceHttpPort"
            binding="tns:HelloServiceHttpBinding">
            <wsdlsoap:address
                location="
http://localhost:8080/xfire/services/HelloService" />
        </wsdl:port>
    </wsdl:service>
q部分是具体的Web服务的定义,在这个名为HelloService的Web服务中,提供?jin)一个服务访问入口,讉K地址?a href="http://localhost:8080/xfire/services/HelloService">http://localhost:8080/xfire/services/HelloServiceQ用的消息模式是由前面的binding所定义的?/p>

  本文单介l了(jin)WSDL规范的用途,基本l构和用方法,希望对大家学?fn)WSDL有帮助?/p>


本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/sunchaohuang/archive/2008/10/14/3076375.aspx



]]>
TCP中的keep-alive机制http://www.shnenglu.com/huangjianfu/archive/2009/11/04/100120.html黄剑?/dc:creator>黄剑?/author>Wed, 04 Nov 2009 06:20:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2009/11/04/100120.htmlhttp://www.shnenglu.com/huangjianfu/comments/100120.htmlhttp://www.shnenglu.com/huangjianfu/archive/2009/11/04/100120.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/100120.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/100120.html

]]>
windows sockets|络~程http://www.shnenglu.com/huangjianfu/archive/2009/10/13/98527.html黄剑?/dc:creator>黄剑?/author>Tue, 13 Oct 2009 14:14:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2009/10/13/98527.htmlhttp://www.shnenglu.com/huangjianfu/comments/98527.htmlhttp://www.shnenglu.com/huangjianfu/archive/2009/10/13/98527.html#Feedback2http://www.shnenglu.com/huangjianfu/comments/commentRss/98527.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/98527.html比如说从容关闭,今天在做一个文件下载的服务器时遇到此问题Q不知道Z么最后的一些字节客L(fng)接收不到Q其实就是从容关闭的问题?br>q有讲sockets套接字,到底是个什么东西时Q也有讲刎ͼ但还是讲得简单了(jin)些,只是描述?jin)一下,套接字,在tcp/ip中就是属于应用层与传输层的一个接口,概念上虽然说明了(jin)是个什么东西,但原理和如何做的又一炚w未介l,q个又让我有点失望?br>今天也就看了(jin)下,没仔l看Q今晚又把此书的代码从网站上down下来?jin),~译?jin)一下完成端口那个程序,q行Q能一ơ编译通过Q说明作者不是在忽?zhn)?br>以后有时间还是有温习(fn)Q系l的看看|络~程Q此书不׃ؓ(f)一本比较好的参考?br>q也是今天的收获吧?

]]>
QoShttp://www.shnenglu.com/huangjianfu/archive/2009/06/01/86410.html黄剑?/dc:creator>黄剑?/author>Mon, 01 Jun 2009 06:41:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2009/06/01/86410.htmlhttp://www.shnenglu.com/huangjianfu/comments/86410.htmlhttp://www.shnenglu.com/huangjianfu/archive/2009/06/01/86410.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/86410.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/86410.html  在正常情况下Q如果网l只用于特定的无旉限制的应用系l,q不需要QoSQ比如Web应用Q或E-mail讄{。但是对关键应用和多媒体应用十分必要。当|络q蝲或拥塞时QQoS 能确保重要业务量不受延迟或丢弃,同时保证|络的高效运行?br>资料来源Q?a >http://baike.baidu.com/view/20897.htm

]]>
物理地址与逻辑地址http://www.shnenglu.com/huangjianfu/archive/2009/05/31/86275.html黄剑?/dc:creator>黄剑?/author>Sun, 31 May 2009 08:05:00 GMThttp://www.shnenglu.com/huangjianfu/archive/2009/05/31/86275.htmlhttp://www.shnenglu.com/huangjianfu/comments/86275.htmlhttp://www.shnenglu.com/huangjianfu/archive/2009/05/31/86275.html#Feedback0http://www.shnenglu.com/huangjianfu/comments/commentRss/86275.htmlhttp://www.shnenglu.com/huangjianfu/services/trackbacks/86275.html物理地址是外部连接用的、唯一的,它是“与地址ȝ相对?#8221;Q?strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">逻辑地址是内部和~程使用的、ƈ不唯一?/font> 在内存(sh)的实际地址是所谓的“物理地址”Q?strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">逻辑地址是逻辑D늮理内存而Ş成的?例如Q你在进行C语言指针~程中,可以d指针变量本n?&操作)Q实际上q个值就?strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">逻辑地址Q它?font color=#0000ff>相对于你当前q程数据D늚地址Q偏Ud址Q?/font>Q不和绝?strong style="COLOR: black; BACKGROUND-COLOR: rgb(153,255,153)">物理地址相干。只有在Intel实模?/font>下,逻辑地址才和物理地址相等Q因为实模式没有分段或分|?Cpu不进行自动地址转换Q,逻辑地址也就?font color=#333333>?font color=#0000ff>Intel 保护模式下程序执行代码段限长内的偏移地址Q假定代码段、数据段如果完全一P(j)?font color=#000000>8086体系的CPU一开始是20根地址U? d寄存器是16?/font>, 16位的寄存器可以访?4K的地址I间, 如果E序要想讉K大于64K的内? p把内存分D? 每段64K, 用段地址+偏移量的Ҏ(gu)来访??86CPU出来之后, 采用?font color=#0000ff>32条地址U? 地址寄存器也扩ؓ(f)32?/font>, q样可以不用分D了(jin), 直接用一个地址寄存器来U性访?G的内存(sh)(jin). q就叫^面模?

?strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">逻辑地址中的D地址左移4位,加上偏移地址得?0?strong style="COLOR: black; BACKGROUND-COLOR: rgb(153,255,153)">物理地址?font color=#0000ff>q里左移?位是二进制位Q?font color=#0000ff>如果用十六进制表辑֜址是左移一?/font>。左U?位还可以表达Z?sh)?6Q即Q段地址×16Q偏Ud址?br>同一?strong style="COLOR: black; BACKGROUND-COLOR: rgb(153,255,153)">物理地址可以对应多个逻辑地址形式。所?strong style="COLOR: black; BACKGROUND-COLOR: rgb(153,255,153)">物理地址转换?strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">逻辑地址Q需要明段基地址或偏Ud址Q然后同上原则确定另一个地址?br>逻辑地址 1460H : 0100H ?380H : 0900H
物理地址 14700H
于是Q对于主?4700H单元Q我们可以描qCؓ(f)?460HQ或1380HQ段?100HQ或0900HQ单元,或者说d1460H : 0100HQ或1380H : 0900HQ单元?/p>

存储单元的地址可以?font color=#0000ff>D基值和D内偏移?/u>来表C?D基值确定它所在的D居于整个存储空间的位置,偏移量确定它在段内的位置,q种地址表示方式UCؓ(f)逻辑地址?/p>

8086对外q接使用一?0位的U性地址唯一定一个存储单元,也就是说Q对于每个存储器单元都有的一个唯一?0位地址Q我们称单元?strong>物理地址?font color=#0000ff>l对地址?/p>

8086在内部结构中和程序设计时采用逻辑D늮理内存,Ş成了(jin)逻辑地址。它的表辑Ş式ؓ(f)“D基地址 : 偏移地址”?/p>

黄剑?/a> 2009-05-31 16:05 发表评论
]]>ACE的构建(VC++6.0环境Q?/title><link>http://www.shnenglu.com/huangjianfu/archive/2009/05/20/83496.html</link><dc:creator>黄剑?/dc:creator><author>黄剑?/author><pubDate>Wed, 20 May 2009 09:15:00 GMT</pubDate><guid>http://www.shnenglu.com/huangjianfu/archive/2009/05/20/83496.html</guid><wfw:comment>http://www.shnenglu.com/huangjianfu/comments/83496.html</wfw:comment><comments>http://www.shnenglu.com/huangjianfu/archive/2009/05/20/83496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/huangjianfu/comments/commentRss/83496.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/huangjianfu/services/trackbacks/83496.html</trackback:ping><description><![CDATA[<div class="qqmmyy8" id="blog_text" class="cnt"> <div style="font-size: 12px;">ACE的构建(VC++6.0环境Q?br> Windows下ACE的构?br> 1. ACE-5.5.zip解压到所需的安装目录,此处以E:\ZQ解压后形成ACE_wrappers文g夹,因此ACE会(x)存在于ACE_wrappers\ace目录中。ACE_ROOT=E:\ACE_wrappers?br> 2. 在系l中新徏ACE_ROOT环境变量QD?E:\ACE_wrappers。具体设|ؓ(f)Q我的电(sh)?>属?>高->环境变量->新徏<br> 3. 在E:\ACE_wrappers\ace目录中创Z个头文gQ命名ؓ(f)config.hQ其内容为:(x)<br> #include "ace/config-win32.h"Q必选项Q?br> #define ACE_HAS_STANDARD_CPP_LIBRARY 1 QMSVC自带的标准C++头文Ӟ(j)<br> #define ACE_HAS_MFC 1Q与MFC一起用)(j)<br> #define ACE_NO_INLINEQ取消函数内联从而减静(rn)态库和运行码的大)(j)<br> #define ACE_AS_STATIC_LIBSQ构建ACE的静(rn)态版本)(j)<br> #define ACE_HAS_WINNT4 0Q在Windows 9x/me上构建所需Q在ACE中移掉一些WinNT/Win2K中特有的代码Q?br> 以上只需要添加前两项可以了(jin)?br> 4. 在VC++中加载ACE的工E文ӞACE_ROOT \ace\ace.dswQ,在release和debug两种~译方式下进行编译,得到相应的库文g(ACE.dll、ACE.lib ? ACEd.dll、ACEd.lib)Q其中ACE.dll 、ACE.lib是由release版生成的QACEd.dll、ACEd.lib是由debug版生成的。具体操作方法:(x)q行VC++Q选择Build ->Batch Build…Q将ACE-Win32 Debug和ACE-Win32 Release全部选中QRebuild All卛_。如下图所C:(x)<br> <br> 按照上面的方法可能只~译出ACE.dll 、ACE.lib库文Ӟ具体原因q(sh)详。按照下面的操作Ҏ(gu)q行~译可以成功生成全部库文件。具体操作方法:(x)Build->Set Active Configuration…分别选中ACE-Win32 Releaseq行~译卛_。如下图所C?br> <br> 同样打开ace_static.dsw~译生成ACEs.lib?ACEsd.lib、ACE_RMCasts.lib、ACE_RMCastsd.lib、TMCasts.lib、TMCastsd.lib<br> <br> 5. 配置ACE环境?打开VC++6.0Q选择Tools->Options->Directories 加入以下内容Q?br> 1) Executable FileQE:\ACE_wrappers\bin<br> 2) Include FileQE:\ACE_wrappers<br> 3) Library FilesQE:\ACE_wrappers\lib<br> 4) Source FilesQE:\ACE_wrappers<br> 在编写程序时要在Project->Settings菜单中进行如下设|:(x) <br> C/C++选项卡:(x)<br> Code GenerationQ选择多线E版q行时库QMultithreaded DLLQ?br> PreprocessorQ在“Additional include directories”域中加入$ACE_ROOT。  <br> Link选项卡:(x)<br> InputQ在“Object/library modules”域中包含适当的ACE库文Ӟ?#8220;Additional library <br> path”域中包含ACE库链接文件的路径。这通常是ACE_ROOT/ace?br> 其中 DLL debug对应ACEd.lib<br>     DLL release对应ACE.lib<br>     Static library debug对应ACEsd.lib<br>     Static library release对应ACEs.lib<br>     MFC DLL debug对应ACEmfcd.lib<br>     MFC DLL release对应ACEmfc.lib<br>    主要用到以上两个库?br> <br> 6. 在系l环境的变量 path中加入E:\ACE_wrappers\binQ否则在q行E序的时候碰到寻找ace.dll或者aced.dll的问题?br> 7. 在MFCE序中用时Q应该在InitInstance()中添加:(x)<br> WSDATA wsData;<br> WORD VerRequested = MAKEWORD (2, 2);<br> WSAStarup (VerRequested, &wsData)<br> 注:(x)可以在头文g中加入如下代码就不用再手动填加lib库文?br> #ifdef _DEBUG<br> #pragma comment (lib,"aced.lib")<br> #else<br> #pragma comment (lib,"ace.lib")<br> #endif<br> 8. 在windows下release时有可能报错Q错误如下:(x)<br> error C2039: 'TryEnterCriticalSection' : is not a member of '`global<br> error C2065: 'TryEnterCriticalSection' : undeclared identifier<br> 解决办法Q?br> 工程 Project-->setting-->C/C++   写入:_WIN32_WINNT=0x0500<br> Linux 下ACE的构?br> 1. 讄环境变量ACE_ROOTQ命令如下:(x)<br> “vi /etc/profile” Q在“export PATH USER….”后加??<br> ? ACE_ROOT=/opt/ACE <br> ? export ACE_ROOT<br> ? LD_LIBRARY_PATH=$ACE_ROOT/ace<img src="http://www.ace-tao.org/bbs/images/smilies/shy.gif" smilieid="8" border="0">LD_LIBRARY_PATH<br> ? export LD_LIBRARY_PATH<br> ?成后?etc/profile执行一ơ,命o(h)Q?#8220;chmod 555 /etc/profile”Q?#8220;/etc/profile”。这h们的ACE_ROOTp|好?jin),可以用如下命令查看ACE_ROOT是否讄好了(jin)Q? “echo $ACE_ROOT” Q这个时候最好reboot启动一ơlinux?br> 2. 解压ACE.tar.gz包:(x)<br> ? 要自己手工将ACE.tar.gz包完全解开Q特别强调不要完全解开Q后面可以看到安装脚本会(x)l我们解开它的Q如果你手工解开全部Q安装脚本将?x)将你的? 压羃目录删除的!我们要做的事只是将ACE.tar.gz包中的ACE-install.sh安装脚本单独解出来,q对其修攏V我们只要这一个文件就? 以。用mkdir建目录,?home/my/ACEQ然后将你的ACE.tar.gz攑֜此目录下Q用cp命o(h)拯或mv命o(h)Ud到此目录Q。注意这? 目录是你的一个存放ACE.tar.gz的目录,安装脚本?x)来q个目录找这个文件的Q这个目录和ACE_ROOT是不一L(fng)Q且ACE- install.sh也提CZ要将q两个目录设|成同一个目录。ACE_ROOT是我们的安装目标目录?br> 3. 从ACE.tar.gz解压出单个文件ACE-install.shQ命令如下:(x)<br> “tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”<br> ?好后Q会(x)出来一个新的子目录“ACE_wrappers”。此时可以先ACE-install.shUd外面的目录来Q?#8220;mv /ACE_wrappers/ACE-install.sh .” “.”代表当前目录。当然ACE-install.sh在什么\径下是没什么媄(jing)响的Q因为我们要对ACE-install.sh的内容进行修改的Q里面有 很多路径要修攏V现在在/home/my/ACE有?jin)ACE-install.shQ我们现在用vi对其q行修改Q修改前自己可以先备份一个。命令:(x) “cp ACE-install.sh ACE-install.sh.bak”Q?#8220;vi ACE-install.sh”先找?#8220;MY_ACEDIR=${HOME}/aceconfig”Q将其改?#8220;MY_ACEDIR= /home/my/ACE”Q就是改成我们自己徏的、放有ACE.tar.gz文g的目录,之后L前面的注?#8220;#”受接着在下面一点,扑ֈ “MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”Q将其修Ҏ(gu)“MY_ACE_CONFIG=config- linux.h”Q即Ҏ(gu)linux下的配置文g。l改Q找?#8220;MY_ACE_GNU_MACROS=platform_sunos5_sunc++. GNU”Q将其改?#8220;MY_ACE_GNU_MACROS=platform_linux.GNU”。这个是各种操作pȝq_下的GNU宏文件设|。文? 修改完毕Q保存退?#8220;:wq”?br> 4. 安装ACEQ?br> 此时应该是在/home/my/ACE目录下,我们执行Q?h./ACE-install.sh <br> ?后将是较长时间的解包、编译等待时间。这个过E将不会(x)出现M错误Q因为安装脚本将为我们做很多事情Q如Q生成config.hQ生? platform_macros.GNU。我们不需要按ACE-install.html中说的手工改东西Q不用做q接“ln -s config-sunos5-sunc++-4.x.h config.h”Q安装脚本会(x)l我们做好;(题外话:(x)Windows中没有文件连接这一_(d)所以要自己生成一个config.h文gQ再在它的里面加一 句话“#include "ace/config-win32.h"”? <br> 如果~译中出现错误,?#8220;../apps/gperf”{,L(fng)?ACE_ROOT/apps下的MakefileQ将其中的有?#8220;gperf”的部分注释掉Q这个东西只是一个例子,可以不去~译它?<br> 一下,用ACE-install.sh来安装,?x)编译ACE、tests、apps{。最后会(x)生成libACE.so?qing)tests、apps下也?x)出来很多经q编译的文g?<br> 当然如果你只是下载了(jin)ACE.tar.gzq样的单个包来安装,你可以手工改文gQ再makeQ因为只~译ACEQ工作就了(jin)很多Q手工做q可以接受?br> ACE学习(fn)资料<br> 1. ACE E序员指?|络与系l编E的实用设计模式 |络与系l编E的实用设计模式   ACE Programmer's Guide practical Design Patterns for Network and Systems Programming<br> (?Stephen D. Huston,(?James CE Johnson,(?Umar Syyid?<br> 马维??中国?sh)力出版C?br> 2. C++|络~程 ?Q运用ACE和模式消除复杂?<br> C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns <br> []Douglas C.Schmidt,Stephen D.Huston /?[]Douglas C.SchmidtQStephen D.Huston 著,於春??nbsp;  华中U技大学出版C?br> 3. C++|络~程,? ZACE和框架的pȝ化复?<br> C++ network Programming, Volume 2 Systematic Reuse with ACE and Frameworks <br> Douglas C.Schmidt, Stephn D.Huston /?nbsp;  | 马维???sh)子工业出版C?br> 4. ACE的官方网?nbsp; <a target="_blank">http://www.cs.wustl.edu/~schmidt/ACE.html</a> <br> 5. 马维辄主页 <a target="_blank">http://www.flyingdonkey.com/</a><br> 6. RIVERACE公司 <a target="_blank">http://www.riverace.com</a><br> 7. 灰狐          <a target="_blank">http://www.huihoo.com/</a> <br> 8.     ACEcd    <a target="_blank">http://dev.csdn.net/article/40/40700.shtm</a><br> <br> <br> 常见错误<br> 错误1Q?br> “Cannot open include file: ace/SOCK_Acceptor.h: No such file        or directory”<br> 解决Ҏ(gu)Q?br> Project->settings->C/C++: Preprocessor的Additional include directories中加?ACE_ROOTQ如E:/ACE_wrappers <br> 错误2Q?br> “You must link against multi-threaded libraries when using ACE (check your project settings)”<br> 解决Ҏ(gu)Q?br> Project->settings->C/C++: Code Generation 的Use run-time library : Debug Multithreaded Dll<br> 错误3Q?br> “error C2065: ACE_ERROR : undeclared identifier”<br> “error C2065: ACE_DEBUG : undeclared identifier”<br> 解决Ҏ(gu)Q?br> 在原马中加入#include ace/Log_Msg.h<br> 错误4Q?#8220;error C4716: ace_main_i : must return a value”<br> 解决Ҏ(gu)Q?br> 在main中加入return 0;<br> 错误5Q?br> “error LNK2001: unresolved external symbol __declspec(dllimport) int __cdecl”<br> 解决Ҏ(gu)Q?br> Project->settings->Link->Input: Object/library Modules加入aced.lib QAdditional Library Path中加?ACE_ROOT\aceQ如E:\ACE_wrappers\ace <br> ~译client中遇到的问题:<br> 错误6Q?br> error C2039: sprintf : is not a member of ACE_OS<br> 解决Ҏ(gu)Q?include ace/OS_NS_stdio.h<br> 错误7Qerror C2039: strlen : is not a member of ACE_OS<br> 解决Ҏ(gu)Q?include ace/OS_NS_string.h<br> 错误8Q无法找到动态链接库aced.dll于指定的路径<br> 解决Ҏ(gu)Qؓ(f)pȝ变量PATH加上D:\ACE_wrappers\bin <br> ?rn)态包含:(x)<br>    工程-讄-C/C++-预处理程序定义中加入 ,ACE_AS_STATIC_LIBS<br>    <br>    <br> 例1server~译后生?br> server.exe 16K   serverd.exe 97K     servers.exe 124K serversd.exe 669K<br> Qservers.exe较适合发布Q?br> <br> ? client~译后生?br> client.exe 16K   clientd.exe 97K     clients.exe 124K clientsd.exe 669K<br> Qclients.exe较适合发布Q?br> <br> 试 clients 127.0.0.1 1919<br>        servers 1919<br> <br> <br> 如果~译器支?4位,通过什么宏定义来区?4位还?2位阿Q?br> {:(x)#define ver ((2>>31)>0?64:32)</div> <div style="font-size: 12px;">-------------------------------------------------------</div> <div style="font-size: 12px;">lACE初哥初妹的话<br> <br> <div style="font-size: 12px;">lACE初哥初妹的话<br> <br> version 0.1.0 Stone jIang 2006-11-6<br> <br> 下面列出?jin)初学ACE必要的基知识Q希望能l初学ACE的朋友们一点帮助。特加上版本Pq是Z(jin)Ƣ迎批判Q补充和修订?br> <br> 1. C++/OOP Q有一部分高手是C语言背景Ҏ(gu)蒂固的,思考问题(sh)是面向对象,q类人学ACE需要先补补OOP思想)<br> <br> 2. Design Pattern (ACE不仅仅是cdQ而是通过模式协同在一L(fng)一pd相关的类Q如果对设计模式熟?zhn)Q那么会(x)用助于学?fn)ACE)<br> <br> 3. Framework (Framework应该q(sh)正式Q相似的词还可以是architecture,不管用啥词语Q所要指出的是,ACE不仅仅是cdQ更是通过模式l合在一 L(fng)互协作的cdŞ成的半成品。框架有别于cdQ后者通常是被动的被程序员写的代码调用Q而框架则往往d地调用用户实现的接口Q即著名的好莱坞原则—? Don't call me , I will call you)<br> <br> 4.Linux(我是Linux初不者,但自从我开始进入Linux ~程的时候,我就发现,ACE许多_֍源自LinuxQ以前对ACE理解有限Q不知道Z么这P其实在Linux中能扑ֈ{案QACE里闪烁着Linux的智慧?<br> <br> 5. Richard Stevens. (英年早逝的Richard,应该是Douglas的良师益友,他的著作影响?jin)Douglas,也就影响着ACE,q里要说的是TCP/IP Illustrated Q其实Richard其他著作Q像APUE都是大滋大补的)(j)<br> <br> 6. 没有6?jin)。如果你认ؓ(f)有,一定告诉我?/div> </div> </div> <br><img src ="http://www.shnenglu.com/huangjianfu/aggbug/83496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/huangjianfu/" target="_blank">黄剑?/a> 2009-05-20 17:15 <a href="http://www.shnenglu.com/huangjianfu/archive/2009/05/20/83496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.3495.com.cn" target="_blank">97þۺɫۺɫhd</a>| <a href="http://www.damingxing.cn" target="_blank">Ʒþþø</a>| <a href="http://www.0510beta.cn" target="_blank">7777Ʒþþô߽</a>| <a href="http://www.bjwx2008.cn" target="_blank">ۺϾþϵ</a>| <a href="http://www.yvresse.cn" target="_blank">պƷþһ </a>| <a href="http://www.zey120.cn" target="_blank">þþƷһĻ </a>| <a href="http://www.jrchen.cn" target="_blank">99þֻƷ</a>| <a href="http://www.hwah.cn" target="_blank">޾Ʒþþþþο</a>| <a href="http://www.fimtb.cn" target="_blank">һɫþ88ձȡۺ</a>| <a href="http://www.gkdb.net.cn" target="_blank">þ91Ʒ91</a>| <a href="http://www.u4439.cn" target="_blank">˾þþþƷ</a>| <a href="http://www.onceday.cn" target="_blank">޹ŷۺϾþ</a>| <a href="http://www.hx85.cn" target="_blank">þþþù</a>| <a href="http://www.huanshengdou.org.cn" target="_blank">þۺϾɫۺ97_þþ</a>| <a href="http://www.anrf.cn" target="_blank">99þþƷѿһ</a>| <a href="http://www.njvwt.cn" target="_blank">91Ʒþþþþ91</a>| <a href="http://www.dgwbcc.cn" target="_blank">޹Ʒþþѿ </a>| <a href="http://www.k7yg835v.cn" target="_blank">þAAAƬ69</a>| <a href="http://www.ccgangjiegou.cn" target="_blank">Ů㽶þ**ëƬƷ</a>| <a href="http://www.pw823.cn" target="_blank">۲˾þþƷٸAV</a>| <a href="http://www.seomog.cn" target="_blank">ɾþۺ777</a>| <a href="http://www.cheaprolex.cn" target="_blank">˺ݺۺϾþ</a>| <a href="http://www.akeyu.cn" target="_blank">˾ƷۺϾþþþ</a>| <a href="http://www.ujjr.cn" target="_blank">þùƵ</a>| <a href="http://www.egpk.cn" target="_blank">޾ƷŮþþþ99С˵ </a>| <a href="http://www.szbomeidisplays.cn" target="_blank">69Ʒþþþ99</a>| <a href="http://www.tongdiaocj.cn" target="_blank">þþƷˬӰ</a>| <a href="http://www.lhjban.cn" target="_blank">ٸлþþþ</a>| <a href="http://www.1dis.cn" target="_blank">þþֻоƷձ</a>| <a href="http://www.frsmb.cn" target="_blank">ҹƷþþþþþ</a>| <a href="http://www.yzlxdr.cn" target="_blank">þþþƷƵѹۿ</a>| <a href="http://www.csrjgzs.cn" target="_blank">91޹˾þþƷ</a>| <a href="http://www.bjyjyyy.cn" target="_blank">һɫþ88ձȡۺ</a>| <a href="http://www.qqschool.cn" target="_blank">.Ʒþþ鶹Ʒ</a>| <a href="http://www.beijianyi.cn" target="_blank">þþƷa޹v岻</a>| <a href="http://www.lwtjf.cn" target="_blank">þþƷ鶹ҹҹ</a>| <a href="http://www.bb2y.cn" target="_blank">þһձɫۺϾþ</a>| <a href="http://www.zazhui.cn" target="_blank">ٸ߳ҽоþþ</a>| <a href="http://www.hefxxw.cn" target="_blank">99þѹۺϾƷ</a>| <a href="http://www.liuqianqian.cn" target="_blank">ۺϾþþþþùɫ</a>| <a href="http://www.hg795.cn" target="_blank">þùһ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>