锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
2銆佸畨瑁卼cmalloc
浜屻乵ysql
1銆乵ysql鐨勭紪璇?br />
2銆佹妸tcmalloc緙栬瘧鍒癿ysql涓?br />
涓夈乵emcache
1銆乵emcache鏄粈涔堬紵
2銆佸畨瑁卪emcache
]]>
涓嬮潰瀵圭粍鎴愭牸寮忚鏄庣殑鍚勯」鍔犱互璇存槑錛?br>鈶?錛氳〃紺烘牸寮忚鏄庣殑璧峰絎﹀彿錛屼笉鍙己灝戙?br>鈶?錛氭湁-琛ㄧず宸﹀榻愯緭鍑猴紝濡傜渷鐣ヨ〃紺哄彸瀵歸綈杈撳嚭銆?br>鈶?錛氭湁0琛ㄧず鎸囧畾絀轟綅濉?,濡傜渷鐣ヨ〃紺烘寚瀹氱┖浣嶄笉濉?br>鈶.n錛歮鎸囧煙瀹斤紝鍗沖搴旂殑杈撳嚭欏瑰湪杈撳嚭璁懼涓婃墍鍗犵殑瀛楃鏁般侼鎸囩簿搴︺傜敤浜庤鏄庤緭鍑虹殑瀹炲瀷鏁扮殑灝忔暟浣嶆暟銆備負鎸囧畾n鏃訛紝闅愬惈鐨勭簿搴︿負n=6浣嶃?br>鈶鎴杊:l瀵規暣鍨嬫寚long鍨嬶紝瀵瑰疄鍨嬫寚double鍨嬨俬鐢ㄤ簬灝嗘暣鍨嬬殑鏍煎紡瀛楃淇涓簊hort鍨嬨?br>
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br>鏍煎紡瀛楃
鏍煎紡瀛楃鐢ㄤ互鎸囧畾杈撳嚭欏圭殑鏁版嵁綾誨瀷鍜岃緭鍑烘牸寮忋?br> 鈶燿鏍煎紡錛氱敤鏉ヨ緭鍑哄崄榪涘埗鏁存暟銆傛湁浠ヤ笅鍑犵鐢ㄦ硶錛?br>%d錛氭寜鏁村瀷鏁版嵁鐨勫疄闄呴暱搴﹁緭鍑恒?br>%md錛歮涓烘寚瀹氱殑杈撳嚭瀛楁鐨勫搴︺傚鏋滄暟鎹殑浣嶆暟灝忎簬m錛屽垯宸︾琛ヤ互絀烘牸錛岃嫢澶т簬m錛屽垯鎸夊疄闄呬綅鏁拌緭鍑恒?br>%ld錛氳緭鍑洪暱鏁村瀷鏁版嵁銆?br>鈶鏍煎紡錛氫互鏃犵鍙峰叓榪涘埗褰㈠紡杈撳嚭鏁存暟銆傚闀挎暣鍨嬪彲浠ョ敤"%lo"鏍煎紡杈撳嚭銆傚悓鏍蜂篃鍙互鎸囧畾瀛楁瀹藉害鐢?#8220;%mo”鏍煎紡杈撳嚭銆?br>渚嬶細
main()
{ int a = -1;
printf("%d, %o", a, a);
}
榪愯緇撴灉錛?1,177777
紼嬪簭瑙f瀽錛?1鍦ㄥ唴瀛樺崟鍏冧腑錛堜互琛ョ爜褰㈠紡瀛樻斁錛変負(1111111111111111)2錛岃漿鎹負鍏繘鍒舵暟涓?177777)8銆?br>鈶鏍煎紡錛氫互鏃犵鍙峰崄鍏繘鍒跺艦寮忚緭鍑烘暣鏁般傚闀挎暣鍨嬪彲浠ョ敤"%lx"鏍煎紡杈撳嚭銆傚悓鏍蜂篃鍙互鎸囧畾瀛楁瀹藉害鐢?%mx"鏍煎紡杈撳嚭銆?br>鈶鏍煎紡錛氫互鏃犵鍙峰崄榪涘埗褰㈠紡杈撳嚭鏁存暟銆傚闀挎暣鍨嬪彲浠ョ敤"%lu"鏍煎紡杈撳嚭銆傚悓鏍蜂篃鍙互鎸囧畾瀛楁瀹藉害鐢?#8220;%mu”鏍煎紡杈撳嚭銆?br>鈶鏍煎紡錛氳緭鍑轟竴涓瓧絎︺?br>鈶鏍煎紡錛氱敤鏉ヨ緭鍑轟竴涓覆銆傛湁鍑犱腑鐢ㄦ硶
%s錛氫緥濡?printf("%s", "CHINA")杈撳嚭"CHINA"瀛楃涓詫紙涓嶅寘鎷弻寮曞彿錛夈?br>%ms錛氳緭鍑虹殑瀛楃涓插崰m鍒楋紝濡傚瓧絎︿覆鏈韓闀垮害澶т簬m錛屽垯紿佺牬鑾穖鐨勯檺鍒?灝嗗瓧絎︿覆鍏ㄩ儴杈撳嚭銆傝嫢涓查暱灝忎簬m錛屽垯宸﹁ˉ絀烘牸銆?br>%-ms錛氬鏋滀覆闀垮皬浜巑錛屽垯鍦╩鍒楄寖鍥村唴錛屽瓧絎︿覆鍚戝乏闈狅紝鍙寵ˉ絀烘牸銆?br>%m.ns錛氳緭鍑哄崰m鍒楋紝浣嗗彧鍙栧瓧絎︿覆涓乏绔痭涓瓧絎︺傝繖n涓瓧絎﹁緭鍑哄湪m鍒楃殑鍙充晶錛屽乏琛ョ┖鏍箋?br>%-m.ns錛氬叾涓璵銆乶鍚箟鍚屼笂錛宯涓瓧絎﹁緭鍑哄湪m鍒楄寖鍥寸殑宸︿晶錛屽彸琛ョ┖鏍箋傚鏋渘>m錛屽垯鑷姩鍙杗鍊鹼紝鍗充繚璇乶涓瓧絎︽甯歌緭鍑恒?br>鈶鏍煎紡錛氱敤鏉ヨ緭鍑哄疄鏁幫紙鍖呮嫭鍗曘佸弻綺懼害錛夛紝浠ュ皬鏁板艦寮忚緭鍑恒傛湁浠ヤ笅鍑犵鐢ㄦ硶錛?br>%f錛氫笉鎸囧畾瀹藉害錛屾暣鏁伴儴鍒嗗叏閮ㄨ緭鍑哄茍杈撳嚭6浣嶅皬鏁般?br>%m.nf錛氳緭鍑哄叡鍗爉鍒楋紝鍏朵腑鏈塶浣嶅皬鏁幫紝濡傛暟鍊煎搴﹀皬浜巑宸︾琛ョ┖鏍箋?nbsp;
%-m.nf錛氳緭鍑哄叡鍗爊鍒楋紝鍏朵腑鏈塶浣嶅皬鏁幫紝濡傛暟鍊煎搴﹀皬浜巑鍙崇琛ョ┖鏍箋?br>鈶鏍煎紡錛氫互鎸囨暟褰㈠紡杈撳嚭瀹炴暟銆傚彲鐢ㄤ互涓嬪艦寮忥細
%e錛氭暟瀛楅儴鍒嗭紙鍙堢О灝炬暟錛夎緭鍑?浣嶅皬鏁幫紝鎸囨暟閮ㄥ垎鍗?浣嶆垨4浣嶃?br>%m.ne鍜?-m.ne錛歮銆乶鍜?#8221;-”瀛楃鍚箟涓庡墠鐩稿悓銆傛澶刵鎸囨暟鎹殑鏁板瓧閮ㄥ垎鐨勫皬鏁頒綅鏁幫紝m琛ㄧず鏁翠釜杈撳嚭鏁版嵁鎵鍗犵殑瀹藉害銆?br>鈶╣鏍煎紡錛氳嚜鍔ㄩ塮鏍煎紡鎴杄鏍煎紡涓緝鐭殑涓縐嶈緭鍑猴紝涓斾笉杈撳嚭鏃犳剰涔夌殑闆躲?br>
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br>鍏充簬printf鍑芥暟鐨勮繘涓姝ヨ鏄庯細
濡傛灉鎯寵緭鍑哄瓧絎?%",鍒欏簲璇ュ湪“鏍煎紡鎺у埗”瀛楃涓蹭腑鐢ㄨ繛緇袱涓?琛ㄧず錛屽:
printf("%f%%", 1.0/3);
杈撳嚭0.333333%銆?br>
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?br>瀵逛簬鍗曠簿搴︽暟錛屼嬌鐢?f鏍煎紡絎﹁緭鍑烘椂錛屼粎鍓?浣嶆槸鏈夋晥鏁板瓧錛屽皬鏁?浣嶏紟
瀵逛簬鍙岀簿搴︽暟錛屼嬌鐢?lf鏍煎紡絎﹁緭鍑烘椂錛屽墠16浣嶆槸鏈夋晥鏁板瓧錛屽皬鏁?浣嶏紟
######################################鎷鵑仐########################################
鐢遍珮鎵嬫寚鐐?br>瀵逛簬m.n鐨勬牸寮忚繕鍙互鐢ㄥ涓嬫柟娉曡〃紺猴紙渚嬶級
char ch[20];
printf("%*.*s\n",m,n,ch);
鍓嶈竟鐨?瀹氫箟鐨勬槸鎬葷殑瀹藉害錛屽悗杈圭殑瀹氫箟鐨勬槸杈撳嚭鐨勪釜鏁般傚垎鍒搴斿闈㈢殑鍙傛暟m鍜宯 銆傛垜鎯寵繖縐嶆柟娉曠殑濂藉鏄彲浠ュ湪璇彞涔嬪瀵瑰弬鏁癿鍜宯璧嬪鹼紝浠庤屾帶鍒惰緭鍑烘牸寮忋?
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.
WSDL鏄竴涓敤浜庣簿紜弿榪癢eb鏈嶅姟鐨勬枃妗o紝WSDL鏂囨。鏄竴涓伒寰猈SDL XML妯″紡鐨刋ML鏂囨。銆俉SDL 鏂囨。灝哤eb鏈嶅姟瀹氫箟涓烘湇鍔¤闂偣鎴栫鍙g殑闆嗗悎銆傚湪 WSDL 涓紝鐢變簬鏈嶅姟璁塊棶鐐瑰拰娑堟伅鐨勬娊璞″畾涔夊凡浠庡叿浣撶殑鏈嶅姟閮ㄧ講鎴栨暟鎹牸寮忕粦瀹氫腑鍒嗙鍑烘潵錛屽洜姝ゅ彲浠ュ鎶借薄瀹氫箟榪涜鍐嶆浣跨敤錛氭秷鎭紝鎸囧浜ゆ崲鏁版嵁鐨勬娊璞℃弿榪幫紱鑰岀鍙g被鍨嬶紝鎸囨搷浣滅殑鎶借薄闆嗗悎銆傜敤浜庣壒瀹氱鍙g被鍨嬬殑鍏蜂綋鍗忚鍜屾暟鎹牸寮忚鑼冩瀯鎴愪簡鍙互鍐嶆浣跨敤鐨勭粦瀹氥傚皢Web璁塊棶鍦板潃涓庡彲鍐嶆浣跨敤鐨勭粦瀹氱浉鍏寵仈錛屽彲浠ュ畾涔変竴涓鍙o紝鑰岀鍙g殑闆嗗悎鍒欏畾涔変負鏈嶅姟銆?/p>
涓涓猈SDL鏂囨。閫氬父鍖呭惈7涓噸瑕佺殑鍏冪礌錛屽嵆types銆乮mport銆乵essage銆乸ortType銆乷peration銆乥inding銆?service鍏冪礌銆傝繖浜涘厓绱犲祵濂楀湪definitions鍏冪礌涓紝definitions鏄疻SDL鏂囨。鐨勬牴鍏冪礌銆傛枃绔犵殑涓嬩竴閮ㄥ垎灝嗕細璇︾粏浠嬬粛WSDL 鐨勫熀鏈粨鏋勩?/p>
浜岋細WSDL鐨勫熀鏈粨鏋?-姒傝堪
濡傜涓閮ㄥ垎鏈鍚庢弿榪扮殑閭f牱錛屼竴涓熀鏈殑WSDL鏂囨。鍖呭惈7涓噸瑕佺殑鍏冪礌銆備笅闈㈠皢鍒嗗埆浠嬬粛榪欏嚑涓厓绱犱互鍙婁粬浠殑浣滅敤銆?/p>
WSDL 鏂囨。鍦╓eb鏈嶅姟鐨勫畾涔変腑浣跨敤涓嬪垪鍏冪礌錛?/p>
Types - 鏁版嵁綾誨瀷瀹氫箟鐨勫鍣紝瀹冧嬌鐢ㄦ煇縐嶇被鍨嬬郴緇?涓鑸湴浣跨敤XML Schema涓殑綾誨瀷緋葷粺)銆?
Message - 閫氫俊娑堟伅鐨勬暟鎹粨鏋勭殑鎶借薄綾誨瀷鍖栧畾涔夈備嬌鐢═ypes鎵瀹氫箟鐨勭被鍨嬫潵瀹氫箟鏁翠釜娑堟伅鐨勬暟鎹粨鏋勩?
Operation - 瀵規湇鍔′腑鎵鏀寔鐨勬搷浣滅殑鎶借薄鎻忚堪錛屼竴鑸崟涓狾peration鎻忚堪浜嗕竴涓闂叆鍙g殑璇鋒眰/鍝嶅簲娑堟伅瀵廣?
PortType - 瀵逛簬鏌愪釜璁塊棶鍏ュ彛鐐圭被鍨嬫墍鏀寔鐨勬搷浣滅殑鎶借薄闆嗗悎錛岃繖浜涙搷浣滃彲浠ョ敱涓涓垨澶氫釜鏈嶅姟璁塊棶鐐規潵鏀寔銆?
Binding - 鐗瑰畾绔彛綾誨瀷鐨勫叿浣撳崗璁拰鏁版嵁鏍煎紡瑙勮寖鐨勭粦瀹氥?
Port - 瀹氫箟涓哄崗璁?鏁版嵁鏍煎紡緇戝畾涓庡叿浣揥eb璁塊棶鍦板潃緇勫悎鐨勫崟涓湇鍔¤闂偣銆?
Service- 鐩稿叧鏈嶅姟璁塊棶鐐圭殑闆嗗悎銆?
鍙互鍙傝冧笅鍥炬潵鐞嗚В涓涓媁SDL鐨勬枃妗g粨鏋勫浘錛?/p>
WSDL鐨剎ml schema鍙互鍙傜収濡備笅緗戝潃錛?a >http://schemas.xmlsoap.org/wsdl/
涓夛細WSDL鐨勫熀鏈粨鏋?-璇﹁堪
鏈妭灝嗛氳繃涓涓緥瀛愯緇嗘弿榪癢SDL鏂囨。姣忎釜鍏冪礌鐨勪綔鐢ㄣ備笅闈竴涓緥瀛愭槸涓涓畝鍗曠殑WSDL鏂囨。鐨勫唴瀹癸紝璇ユ枃妗g殑浜х敓鍙互鍙傝鎴戠殑鍙﹀涓綃囨枃绔狅細xfire寮鍙戝疄渚?-HelloWorld綃?銆?/p>
涓涓畝鍗曠殑Web Service鐨刉SDL鏂囨。錛岃鏈嶅姟鏀寔鍚嶄負sayHello鐨勫敮涓鎿嶄綔錛岃鎿嶄綔閫氳繃鍦╤ttp涓婅繍琛孲OAP鍗忚鏉ュ疄鐜扮殑銆傝璇鋒眰鎺ュ彈涓涓瓧絎︿覆name錛岀粡榪囧鐞嗗悗榪斿洖涓涓畝鍗曠殑瀛楃涓層傛枃妗e涓嬶細
<?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妯″紡璇█澹版槑鍦╓SDL鏂囨。涓殑鍏朵粬浣嶇疆浣跨敤鐨勫鏉傛暟鎹被鍨嬩笌鍏冪礌錛?/p>
♦ import鍏冪礌綾諱技浜嶺ML妯″紡鏂囨。涓殑import鍏冪礌錛岀敤浜庝粠鍏朵粬WSDL鏂囨。涓鍏SDL瀹氫箟錛?/p>
♦ message鍏冪礌浣跨敤鍦╓SDL鏂囨。鐨則ype鍏冪礌涓畾涔夋垨鍦╥mport鍏冪礌寮曠敤鐨勫閮╓SDL鏂囨。涓畾涔夌殑XML妯″紡鐨勫唴緗被鍨嬨佸鏉傜被鍨嬫垨鍏冪礌鎻忚堪浜嗘秷鎭殑鏈夋晥璐熻澆錛?/p>
♦ portType鍏冪礌鍜宱peration鍏冪礌鎻忚堪浜哤eb鏈嶅姟鐨勬帴鍙e茍瀹氫箟浜嗕粬鐨勬柟娉曘俻ortType鍏冪礌鍜宱peration鍏冪礌綾諱技浜?java鎺ュ彛鍜屾帴鍙d腑瀹氫箟鐨勬柟娉曞0鏄庛俹peration鍏冪礌浣跨敤涓涓垨鑰呭涓猰essage綾誨瀷鏉ュ畾涔変粬鐨勮緭鍏ュ拰杈撳嚭鐨勬湁鏁堣礋杞斤紱
♦ Binding鍏冪礌灝唒ortType鍏冪礌鍜宱peration鍏冪礌璧嬬粰涓涓壒孌婄殑鍗忚鍜岀紪鐮佹牱寮忥紱
♦ service鍏冪礌璐熻矗灝咺nternet鍦板潃璧嬬粰涓涓叿浣撶殑緇戝畾錛?/p>
1銆乨efinitions鍏冪礌
鎵鏈夌殑WSDL鏂囨。鐨勬牴鍏冪礌鍧囨槸definitions鍏冪礌銆傝鍏冪礌灝佽浜嗘暣涓枃妗o紝鍚屾椂閫氳繃鍏秐ame鎻愪緵浜嗕竴涓猈SDL鏂囨。銆傞櫎浜嗘彁渚涗竴涓懡鍚嶇┖闂村錛岃鍏冪礌娌℃湁鍏朵粬浣滅敤錛屾晠涓嶄綔璇︾粏鎻忚堪銆?/p>
涓嬮潰鐨勪唬鐮佹槸涓涓猟efinitions鍏冪礌鐨勭粨鏋勶細
<wsdl:definitions
targetNamespace=" xmlns:tns=" xmlns:wsdlsoap=" xmlns:soap12=" xmlns:xsd=" xmlns:soapenc11=" xmlns:soapenc12=" xmlns:soap11=" xmlns:wsdl="</wsdl:definitions>
2銆乼ypes鍏冪礌
WSDL閲囩敤浜哤3C XML妯″紡鍐呯疆綾誨瀷浣滀負鍏跺熀鏈被鍨嬬郴緇熴倀ypes鍏冪礌鐢ㄤ綔涓涓鍣紝鐢ㄤ簬瀹氫箟XML妯″紡鍐呯疆綾誨瀷涓病鏈夋弿榪扮殑鍚勭鏁版嵁綾誨瀷銆傚綋澹版槑娑堟伅閮ㄥ垎鐨勬湁鏁堣礋杞芥椂錛屾秷鎭畾涔変嬌鐢ㄤ簡鍦╰ypes鍏冪礌涓畾涔夌殑鏁版嵁綾誨瀷鍜屽厓绱犮傚湪鏈枃鐨刉SDL鏂囨。涓殑types瀹氫箟錛?/p>
<wsdl:types> sayHello錛氬畾涔変簡涓涓鏉傜被鍨嬶紝浠呬粎鍖呭惈涓涓畝鍗曠殑瀛楃涓詫紝灝嗘潵鐢ㄦ潵鎻忚堪鎿嶄綔鐨勫弬鍏ヤ紶鍏ラ儴鍒嗭紱 sayHelloResponse錛氬畾涔変簡涓涓鏉傜被鍨嬶紝浠呬粎鍖呭惈涓涓畝鍗曠殑瀛楃涓詫紝灝嗘潵鐢ㄦ潵鎻忚堪鎿嶄綔鐨勮繑鍥炲鹼紱 3銆乮mport鍏冪礌 import鍏冪礌浣垮緱鍙互鍦ㄥ綋鍓嶇殑WSDL鏂囨。涓嬌鐢ㄥ叾浠朩SDL鏂囨。涓寚瀹氱殑鍛藉悕絀洪棿涓殑瀹氫箟鍏冪礌銆傛湰渚嬪瓙涓病鏈変嬌鐢╥mport鍏冪礌銆傞氬父鍦ㄧ敤鎴峰笇鏈涙ā鍧楀寲WSDL鏂囨。鐨勬椂鍊欙紝璇ュ姛鑳芥槸闈炲父鏈夋晥鏋滅殑銆?/p>
import鐨勬牸寮忓涓嬶細 <wsdl:import namespace=" <wsdl:part name="parameters" element="tns:sayHelloResponse" /> sayHelloRequest錛歴ayHello鎿嶄綔鐨勮姹傛秷鎭牸寮忥紝鐢變竴涓秷鎭墖鏂粍鎴愶紝鍚嶅瓧涓簆arameters,鍏冪礌鏄垜浠墠闈㈠畾涔夌殑types涓殑鍏冪礌錛?/p>
sayHelloResponse錛歴ayHello鎿嶄綔鐨勫搷搴旀秷鎭牸寮忥紝鐢變竴涓秷鎭墖鏂粍鎴愶紝鍚嶅瓧涓簆arameters,鍏冪礌鏄垜浠墠闈㈠畾涔夌殑types涓殑鍏冪礌錛?/p>
濡傛灉閲囩敤RPC鏍峰紡鐨勬秷鎭紶閫掞紝鍙渶瑕佸皢鏂囨。涓殑element鍏冪礌搴斾互淇敼涓簍ype鍗沖彲銆?/p>
5銆乸ortType鍏冪礌 portType鍏冪礌瀹氫箟浜哤eb鏈嶅姟鐨勬娊璞℃帴鍙c傝鎺ュ彛鏈夌偣綾諱技Java鐨勬帴鍙o紝閮芥槸瀹氫箟浜嗕竴涓娊璞$被鍨嬪拰鏂規硶錛屾病鏈夊畾涔夊疄鐜般傚湪WSDL涓紝 portType鍏冪礌鏄敱binding鍜宻ervice鍏冪礌鏉ュ疄鐜扮殑錛岃繖涓や釜鍏冪礌鐢ㄦ潵璇存槑Web鏈嶅姟瀹炵幇浣跨敤鐨処nternet鍗忚銆佺紪鐮佹柟妗堜互鍙?Internet鍦板潃銆?/p>
涓涓猵ortType涓彲浠ュ畾涔夊涓猳peration錛屼竴涓猳peration鍙互鐪嬩綔鏄竴涓柟娉曪紝鏈枃涓璚SDL鏂囨。鐨勫畾涔夛細 <wsdl:portType name="HelloServicePortType"> 錛栥乥inding binding鍏冪礌灝嗕竴涓娊璞ortType鏄犲皠鍒頒竴緇勫叿浣撳崗璁?SOAO鍜孒TTP)銆佹秷鎭紶閫掓牱寮忋佺紪鐮佹牱寮忋傞氬父binding鍏冪礌涓庡崗璁笓鏈夌殑鍏冪礌鍜屽湪涓璧蜂嬌鐢紝鏈枃涓殑渚嬪瓙錛?/p>
<wsdl:binding name="HelloServiceHttpBinding" 鍏蜂綋鐨勪嬌鐢ㄩ渶瑕佸弬鑰冪壒瀹氬崗璁畾涔夌殑鍏冪礌銆?/p>
錛椼乻ervice鍏冪礌鍜宲ort鍏冪礌 service鍏冪礌鍖呭惈涓涓垨鑰呭涓猵ort鍏冪礌錛屽叾涓瘡涓猵ort鍏冪礌琛ㄧず涓涓笉鍚岀殑Web鏈嶅姟銆俻ort鍏冪礌灝哢RL璧嬬粰涓涓壒瀹氱殑binding錛岀敋鑷沖彲浠ヤ嬌涓や釜鎴栬呭涓猵ort鍏冪礌灝嗕笉鍚岀殑URL璧嬪肩粰鐩稿悓鐨刡inding銆傛枃妗d腑鐨勪緥瀛愶細 <wsdl:service name="HelloService"> 銆銆鏈枃綆鍗曚粙緇嶄簡WSDL瑙勮寖鐨勭敤閫旓紝鍩烘湰緇撴瀯鍜屼嬌鐢ㄦ柟娉曪紝甯屾湜瀵瑰ぇ瀹跺涔燱SDL鏈夊府鍔┿?/p>
<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>
涓婇潰鏄暟鎹畾涔夐儴鍒嗭紝璇ラ儴鍒嗗畾涔変簡涓や釜鍏冪礌錛屼竴涓槸sayHello錛屼竴涓槸sayHelloResponse錛?/p>
</wsdl:message>
<wsdl:message name="sayHelloRequest">
<wsdl:part name="parameters" element="tns:sayHello" />
</wsdl:message>
璇ラ儴鍒嗘槸娑堟伅鏍煎紡鐨勬娊璞″畾涔夛細瀹氫箟浜嗕袱涓秷鎭痵ayHelloResponse鍜宻ayHelloRequest錛?/p>
<wsdl:operation name="sayHello">
<wsdl:input name="sayHelloRequest"
message="tns:sayHelloRequest" />
<wsdl:output name="sayHelloResponse"
message="tns:sayHelloResponse" />
</wsdl:operation>
</wsdl:portType>
portType瀹氫箟浜嗘湇鍔$殑璋冪敤妯″紡鐨勭被鍨嬶紝榪欓噷鍖呭惈涓涓搷浣渟ayHello鏂規硶錛屽悓鏃跺寘鍚玦nput鍜宱utput琛ㄦ槑璇ユ搷浣滄槸涓涓姹傦紡鍝嶅簲妯″紡錛岃姹傛秷鎭槸鍓嶉潰瀹氫箟鐨剆ayHelloRequest錛屽搷搴旀秷鎭槸鍓嶉潰瀹氫箟鐨剆ayHelloResponse銆俰nput琛ㄧず浼犻掑埌Web鏈嶅姟鐨勬湁鏁堣礋杞斤紝output娑堟伅琛ㄧず浼犻掔粰瀹㈡埛鐨勬湁鏁堣礋杞姐?/p>
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>
榪欓儴鍒嗗皢鏈嶅姟璁塊棶鐐圭殑鎶借薄瀹氫箟涓嶴OAP HTTP緇戝畾錛屾弿榪板浣曢氳繃SOAP/HTTP鏉ヨ闂寜鐓у墠闈㈡弿榪扮殑璁塊棶鍏ュ彛鐐圭被鍨嬮儴緗茬殑璁塊棶鍏ュ彛銆傚叾涓瀹氫簡鍦ㄥ叿浣揝OAP璋冪敤鏃訛紝搴斿綋浣跨敤鐨剆oapAction鏄?"銆?/p>
<wsdl:port name="HelloServiceHttpPort"
binding="tns:HelloServiceHttpBinding">
<wsdlsoap:address
location="http://localhost:8080/xfire/services/HelloService" />
</wsdl:port>
</wsdl:service>
榪欓儴鍒嗘槸鍏蜂綋鐨刉eb鏈嶅姟鐨勫畾涔夛紝鍦ㄨ繖涓悕涓篐elloService鐨刉eb鏈嶅姟涓紝鎻愪緵浜嗕竴涓湇鍔¤闂叆鍙o紝璁塊棶鍦板潃鏄?a href="http://localhost:8080/xfire/services/HelloService">http://localhost:8080/xfire/services/HelloService
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/sunchaohuang/archive/2008/10/14/3076375.aspx
]]>
灝?strong style="COLOR: black; BACKGROUND-COLOR: rgb(255,255,102)">閫昏緫鍦板潃涓殑孌靛湴鍧宸︾Щ4浣嶏紝鍔犱笂鍋忕Щ鍦板潃灝卞緱鍒?0浣?strong style="COLOR: black; BACKGROUND-COLOR: rgb(153,255,153)">鐗╃悊鍦板潃銆?font color=#0000ff>榪欓噷宸︾Щ鐨?浣嶆槸浜岃繘鍒朵綅
瀛樺偍鍗曞厓鐨勫湴鍧鍙互鐢?font color=#0000ff>孌靛熀鍊煎拰孌靛唴鍋忕Щ閲?/u>鏉ヨ〃紺?孌靛熀鍊肩‘瀹氬畠鎵鍦ㄧ殑孌靛眳浜庢暣涓瓨鍌ㄧ┖闂寸殑浣嶇疆,鍋忕Щ閲忕‘瀹氬畠鍦ㄦ鍐呯殑浣嶇疆,榪欑鍦板潃琛ㄧず鏂瑰紡縐頒負閫昏緫鍦板潃銆?/p>
]]>
3. 鍦‥:\ACE_wrappers\ace鐩綍涓垱寤轟竴涓ご鏂囦歡錛屽懡鍚嶄負config.h錛屽叾鍐呭涓猴細
#include "ace/config-win32.h"錛堝繀閫夐」錛?br>
#define ACE_HAS_STANDARD_CPP_LIBRARY 1 錛圡SVC鑷甫鐨勬爣鍑咰++澶存枃浠訛級
#define ACE_HAS_MFC 1錛堜笌MFC涓璧蜂嬌鐢級
#define ACE_NO_INLINE錛堝彇娑堝嚱鏁板唴鑱斾粠鑰屽噺灝忛潤鎬佸簱鍜岃繍琛岀爜鐨勫ぇ灝忥級
#define ACE_AS_STATIC_LIBS錛堟瀯寤篈CE鐨勯潤鎬佺増鏈級
#define ACE_HAS_WINNT4 0錛堝湪Windows 9x/me涓婃瀯寤烘墍闇錛屽湪ACE涓Щ鎺変竴浜沇inNT/Win2K涓壒鏈夌殑浠g爜錛?br>
浠ヤ笂鍙渶瑕佹坊鍔犲墠涓ら」灝卞彲浠ヤ簡銆?br>
4. 鍦╒C++涓姞杞紸CE鐨勫伐紼嬫枃浠訛紙ACE_ROOT
\ace\ace.dsw錛夛紝鍦╮elease鍜宒ebug涓ょ緙栬瘧鏂瑰紡涓嬭繘琛岀紪璇戯紝寰楀埌鐩稿簲鐨勫簱鏂囦歡(ACE.dll銆丄CE.lib 鍜?
ACEd.dll銆丄CEd.lib)錛屽叾涓瑼CE.dll
銆丄CE.lib鏄敱release鐗堢敓鎴愮殑錛孉CEd.dll銆丄CEd.lib鏄敱debug鐗堢敓鎴愮殑銆傚叿浣撴搷浣滄柟娉曪細榪愯VC++錛岄夋嫨Build
->Batch Build…錛屽皢ACE-Win32 Debug鍜孉CE-Win32 Release鍏ㄩ儴閫変腑錛孯ebuild
All鍗沖彲銆傚涓嬪浘鎵紺猴細
鎸夌収涓婇潰鐨勬柟娉曞彲鑳藉彧緙栬瘧鍑篈CE.dll
銆丄CE.lib搴撴枃浠訛紝鍏蜂綋鍘熷洜榪樹笉璇︺傛寜鐓т笅闈㈢殑鎿嶄綔鏂規硶榪涜緙栬瘧鍙互鎴愬姛鐢熸垚鍏ㄩ儴搴撴枃浠躲傚叿浣撴搷浣滄柟娉曪細Build->Set
Active Configuration…鍒嗗埆閫変腑ACE-Win32 Release榪涜緙栬瘧鍗沖彲銆傚涓嬪浘鎵紺?br>
鍚屾牱鎵撳紑ace_static.dsw緙栬瘧鐢熸垚ACEs.lib銆?ACEsd.lib銆丄CE_RMCasts.lib銆丄CE_RMCastsd.lib銆乀MCasts.lib銆乀MCastsd.lib
5. 閰嶇疆ACE鐜銆?鎵撳紑VC++6.0錛岄夋嫨Tools->Options->Directories 鍔犲叆浠ヤ笅鍐呭錛?br>
1) Executable File錛欵:\ACE_wrappers\bin
2) Include File錛欵:\ACE_wrappers
3) Library Files錛欵:\ACE_wrappers\lib
4) Source Files錛欵:\ACE_wrappers
鍦ㄧ紪鍐欑▼搴忔椂瑕佸湪Project->Settings鑿滃崟涓繘琛屽涓嬭緗細
C/C++閫夐」鍗★細
Code Generation錛氶夋嫨澶氱嚎紼嬬増榪愯鏃跺簱錛圡ultithreaded DLL錛夈?br>
Preprocessor錛氬湪“Additional include directories”鍩熶腑鍔犲叆$ACE_ROOT銆傘銆
Link閫夐」鍗★細
Input錛氬湪“Object/library modules”鍩熶腑鍖呭惈閫傚綋鐨凙CE搴撴枃浠訛紝鍦?#8220;Additional library
path”鍩熶腑鍖呭惈ACE搴撻摼鎺ユ枃浠剁殑璺緞銆傝繖閫氬父鏄疉CE_ROOT/ace銆?br>
鍏朵腑 DLL debug瀵瑰簲ACEd.lib
DLL release瀵瑰簲ACE.lib
Static library debug瀵瑰簲ACEsd.lib
Static library release瀵瑰簲ACEs.lib
MFC DLL debug瀵瑰簲ACEmfcd.lib
MFC DLL release瀵瑰簲ACEmfc.lib
涓昏鐢ㄥ埌浠ヤ笂涓や釜搴撱?br>
6. 鍦ㄧ郴緇熺幆澧冪殑鍙橀噺 path涓姞鍏:\ACE_wrappers\bin錛屽惁鍒欏湪榪愯紼嬪簭鐨勬椂鍊欑鍒板鎵綼ce.dll鎴栬卆ced.dll鐨勯棶棰樸?br>
7. 鍦∕FC紼嬪簭涓嬌鐢ㄦ椂錛屽簲璇ュ湪InitInstance()涓坊鍔狅細
WSDATA wsData;
WORD VerRequested = MAKEWORD (2, 2);
WSAStarup (VerRequested, &wsData)
娉細鍙互鍦ㄥご鏂囦歡涓姞鍏ュ涓嬩唬鐮佸氨涓嶇敤鍐嶆墜鍔ㄥ~鍔爈ib搴撴枃浠?br>
#ifdef _DEBUG
#pragma comment (lib,"aced.lib")
#else
#pragma comment (lib,"ace.lib")
#endif
8. 鍦╳indows涓媟elease鏃舵湁鍙兘鎶ラ敊錛岄敊璇涓嬶細
error C2039: 'TryEnterCriticalSection' : is not a member of '`global
error C2065: 'TryEnterCriticalSection' : undeclared identifier
瑙e喅鍔炴硶錛?br>
宸ョ▼ Project-->setting-->C/C++ 鍐欏叆:_WIN32_WINNT=0x0500
Linux 涓婣CE鐨勬瀯寤?br>
1. 璁劇疆鐜鍙橀噺ACE_ROOT錛屽懡浠ゅ涓嬶細
“vi /etc/profile” 錛屽湪“export PATH USER….”鍚庡姞鍏?琛?
飦? ACE_ROOT=/opt/ACE
飦? export ACE_ROOT
飦? LD_LIBRARY_PATH=$ACE_ROOT/aceLD_LIBRARY_PATH
飦? export LD_LIBRARY_PATH
瀹?鎴愬悗灝?etc/profile鎵ц涓嬈★紝鍛戒護錛?#8220;chmod 555
/etc/profile”錛?#8220;/etc/profile”銆傝繖鏍鋒垜浠殑ACE_ROOT灝辮緗ソ浜嗭紝鍙互鐢ㄥ涓嬪懡浠ゆ煡鐪婣CE_ROOT鏄惁璁劇疆濂戒簡錛?
“echo $ACE_ROOT” 錛岃繖涓椂鍊欐渶濂絩eboot鍚姩涓嬈inux銆?br>
2. 瑙e帇ACE.tar.gz鍖咃細
涓?
瑕佽嚜宸辨墜宸ュ皢ACE.tar.gz鍖呭畬鍏ㄨВ寮錛岀壒鍒己璋冧笉瑕佸畬鍏ㄨВ寮錛屽悗闈㈠彲浠ョ湅鍒板畨瑁呰剼鏈細緇欐垜浠В寮瀹冪殑錛涘鏋滀綘鎵嬪伐瑙e紑鍏ㄩ儴錛屽畨瑁呰剼鏈皢浼氬皢浣犵殑瑙?
鍘嬬緝鐩綍鍒犻櫎鐨勶紒鎴戜滑瑕佸仛鐨勪簨灝卞彧鏄皢ACE.tar.gz鍖呬腑鐨凙CE-install.sh瀹夎鑴氭湰鍗曠嫭瑙e嚭鏉ワ紝騫跺鍏朵慨鏀廣傛垜浠彧瑕佽繖涓涓枃浠跺氨鍙?
浠ャ傜敤mkdir寤虹洰褰曪紝濡?home/my/ACE錛岀劧鍚庡皢浣犵殑ACE.tar.gz鏀懼湪姝ょ洰褰曚笅錛堢敤cp鍛戒護鎷瘋礉鎴杕v鍛戒護縐誨姩鍒版鐩綍錛夈傛敞鎰忚繖涓?
鐩綍灝嗘槸浣犵殑涓涓瓨鏀続CE.tar.gz鐨勭洰褰曪紝瀹夎鑴氭湰浼氭潵榪欎釜鐩綍鎵捐繖涓枃浠剁殑錛岃繖涓洰褰曞拰ACE_ROOT鏄笉涓鏍風殑錛屼笖ACE-
install.sh涔熸彁紺轟笉瑕佸皢榪欎袱涓洰褰曡緗垚鍚屼竴涓洰褰曘侫CE_ROOT灝嗘槸鎴戜滑鐨勫畨瑁呯洰鏍囩洰褰曘?br>
3. 浠嶢CE.tar.gz瑙e帇鍑哄崟涓枃浠禔CE-install.sh錛屽懡浠ゅ涓嬶細
“tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”
瑙?濂藉悗錛屼細鍑烘潵涓涓柊鐨勫瓙鐩綍“ACE_wrappers”銆傛鏃跺彲浠ュ厛灝咥CE-install.sh縐誨埌澶栭潰鐨勭洰褰曟潵錛?#8220;mv
/ACE_wrappers/ACE-install.sh .”
“.”浠h〃褰撳墠鐩綍銆傚綋鐒禔CE-install.sh鍦ㄤ粈涔堣礬寰勪笅鏄病浠涔堝獎鍝嶇殑錛屽洜涓烘垜浠瀵笰CE-install.sh鐨勫唴瀹硅繘琛屼慨鏀圭殑錛岄噷闈㈡湁
寰堝璺緞瑕佷慨鏀廣傜幇鍦ㄥ湪/home/my/ACE灝辨湁浜咥CE-install.sh錛屾垜浠幇鍦ㄧ敤vi瀵瑰叾榪涜淇敼錛屼慨鏀瑰墠鑷繁鍙互鍏堝浠戒竴涓傚懡浠わ細
“cp ACE-install.sh ACE-install.sh.bak”錛?#8220;vi
ACE-install.sh”鍏堟壘鍒?#8220;MY_ACEDIR=${HOME}/aceconfig”錛屽皢鍏舵敼鎴?#8220;MY_ACEDIR=
/home/my/ACE”錛屽氨鏄敼鎴愭垜浠嚜宸卞緩鐨勩佹斁鏈堿CE.tar.gz鏂囦歡鐨勭洰褰曪紝涔嬪悗鍘繪帀鍓嶉潰鐨勬敞閲?#8220;#”鍙楓傛帴鐫鍦ㄤ笅闈竴鐐癸紝鎵懼埌
“MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”錛屽皢鍏朵慨鏀規垚“MY_ACE_CONFIG=config-
linux.h”錛屽嵆鏀規垚linux涓嬬殑閰嶇疆鏂囦歡銆傜戶緇敼錛屾壘鍒?#8220;MY_ACE_GNU_MACROS=platform_sunos5_sunc++.
GNU”錛屽皢鍏舵敼鎴?#8220;MY_ACE_GNU_MACROS=platform_linux.GNU”銆傝繖涓槸鍚勭鎿嶄綔緋葷粺騫沖彴涓嬬殑GNU瀹忔枃浠惰緗傛枃浠?
淇敼瀹屾瘯錛屼繚瀛橀鍑?#8220;:wq”銆?br>
4. 瀹夎ACE錛?br>
姝ゆ椂搴旇鏄湪/home/my/ACE鐩綍涓嬶紝鎴戜滑鎵ц錛?h./ACE-install.sh
姝?鍚庡皢鏄緝闀挎椂闂寸殑瑙e寘銆佺紪璇戠瓑寰呮椂闂淬傝繖涓繃紼嬪皢涓嶄細鍑虹幇浠諱綍閿欒錛屽洜涓哄畨瑁呰剼鏈皢涓烘垜浠仛寰堝浜嬫儏錛屽錛氱敓鎴恈onfig.h錛岀敓鎴?
platform_macros.GNU銆傛垜浠笉闇瑕佹寜ACE-install.html涓鐨勬墜宸ユ敼涓滆タ錛氫笉鐢ㄥ仛榪炴帴“ln -s
config-sunos5-sunc++-4.x.h
config.h”錛屽畨瑁呰剼鏈細緇欐垜浠仛濂斤紱(棰樺璇濓細Windows涓病鏈夋枃浠惰繛鎺ヨ繖涓璇達紝鎵浠ヨ鑷繁鐢熸垚涓涓猚onfig.h鏂囦歡錛屽啀鍦ㄥ畠鐨勯噷闈㈠姞涓
鍙ヨ瘽“#include "ace/config-win32.h"”銆?
濡傛灉緙栬瘧涓嚭鐜伴敊璇紝濡?#8220;../apps/gperf”絳夛紝璇風紪杈?ACE_ROOT/apps涓嬬殑Makefile錛屽皢鍏朵腑鐨勬湁鍏?#8220;gperf”鐨勯儴鍒嗘敞閲婃帀錛岃繖涓笢瑗垮彧鏄竴涓緥瀛愶紝鍙互涓嶅幓緙栬瘧瀹冦?
寮鴻皟涓涓嬶紝鐢ˋCE-install.sh鏉ュ畨瑁咃紝浼氱紪璇慉CE銆乼ests銆乤pps絳夈傛渶鍚庝細鐢熸垚libACE.so鍙妕ests銆乤pps涓嬩篃浼氬嚭鏉ュ緢澶氱粡榪囩紪璇戠殑鏂囦歡銆?
褰撶劧濡傛灉浣犲彧鏄笅杞戒簡ACE.tar.gz榪欐牱鐨勫崟涓寘鏉ュ畨瑁咃紝浣犲彲浠ユ墜宸ユ敼鏂囦歡錛屽啀make錛屽洜涓哄彧緙栬瘧ACE錛屽伐浣滃氨灝戜簡寰堝錛屾墜宸ュ仛榪樺彲浠ユ帴鍙椼?br>
ACE瀛︿範璧勬枡
1. ACE 紼嬪簭鍛樻寚鍗?緗戠粶涓庣郴緇熺紪紼嬬殑瀹炵敤璁捐妯″紡 緗戠粶涓庣郴緇熺紪紼嬬殑瀹炵敤璁捐妯″紡 ACE Programmer's Guide
practical Design Patterns for Network and Systems Programming
(緹?Stephen D. Huston,(緹?James CE Johnson,(緹?Umar Syyid钁?
椹淮杈?璇?涓浗鐢靛姏鍑虹増紺?br>
2. C++緗戠粶緙栫▼ 鍗?錛氳繍鐢ˋCE鍜屾ā寮忔秷闄ゅ鏉傛?
C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns
[緹嶿Douglas C.Schmidt,Stephen D.Huston /钁?[緹嶿Douglas C.Schmidt錛孲tephen D.Huston 钁楋紝鏂兼槬鏅?璇?nbsp; 鍗庝腑縐戞妧澶у鍑虹増紺?br>
3. C++緗戠粶緙栫▼,鍗? 鍩轟簬ACE鍜屾鏋剁殑緋葷粺鍖栧鐢?
C++ network Programming, Volume 2 Systematic Reuse with ACE and Frameworks
Douglas C.Schmidt, Stephn D.Huston /钁?nbsp; | 椹淮杈?璇?鐢靛瓙宸ヤ笟鍑虹増紺?br>
4. ACE鐨勫畼鏂圭綉绔?nbsp; http://www.cs.wustl.edu/~schmidt/ACE.html
5. 椹淮杈劇殑涓婚〉 http://www.flyingdonkey.com/
6. RIVERACE鍏徃 http://www.riverace.com
7. 鐏扮嫄 http://www.huihoo.com/
8. ACE綾誨簱 http://dev.csdn.net/article/40/40700.shtm
甯歌閿欒
閿欒1錛?br>
“Cannot open include file: ace/SOCK_Acceptor.h: No such file or directory”
瑙e喅鏂規硶錛?br>
Project->settings->C/C++: Preprocessor鐨凙dditional include directories涓姞鍏?ACE_ROOT錛屽E:/ACE_wrappers
閿欒2錛?br>
“You must link against multi-threaded libraries when using ACE (check your project settings)”
瑙e喅鏂規硶錛?br>
Project->settings->C/C++: Code Generation 鐨刄se run-time library : Debug Multithreaded Dll
閿欒3錛?br>
“error C2065: ACE_ERROR : undeclared identifier”
“error C2065: ACE_DEBUG : undeclared identifier”
瑙e喅鏂規硶錛?br>
鍦ㄥ師椹腑鍔犲叆#include ace/Log_Msg.h
閿欒4錛?#8220;error C4716: ace_main_i : must return a value”
瑙e喅鏂規硶錛?br>
鍦╩ain涓姞鍏eturn 0;
閿欒5錛?br>
“error LNK2001: unresolved external symbol __declspec(dllimport) int __cdecl”
瑙e喅鏂規硶錛?br>
Project->settings->Link->Input: Object/library
Modules鍔犲叆aced.lib 錛孉dditional Library
Path涓姞鍏?ACE_ROOT\ace錛屽E:\ACE_wrappers\ace
緙栬瘧client涓亣鍒扮殑闂:
閿欒6錛?br>
error C2039: sprintf : is not a member of ACE_OS
瑙e喅鏂規硶錛?include ace/OS_NS_stdio.h
閿欒7錛歟rror C2039: strlen : is not a member of ACE_OS
瑙e喅鏂規硶錛?include ace/OS_NS_string.h
閿欒8錛氭棤娉曟壘鍒板姩鎬侀摼鎺ュ簱aced.dll浜庢寚瀹氱殑璺緞
瑙e喅鏂規硶錛氫負緋葷粺鍙橀噺PATH鍔犱笂D:\ACE_wrappers\bin
闈欐佸寘鍚細
宸ョ▼-璁劇疆-C/C++-棰勫鐞嗙▼搴忓畾涔変腑鍔犲叆 ,ACE_AS_STATIC_LIBS
渚嬶紤server緙栬瘧鍚庣敓鎴?br>
server.exe 16K serverd.exe 97K servers.exe 124K serversd.exe 669K
錛坰ervers.exe杈冮傚悎鍙戝竷錛?br>
渚? client緙栬瘧鍚庣敓鎴?br>
client.exe 16K clientd.exe 97K clients.exe 124K clientsd.exe 669K
錛坈lients.exe杈冮傚悎鍙戝竷錛?br>
嫻嬭瘯 clients 127.0.0.1 1919
servers 1919
濡傛灉緙栬瘧鍣ㄦ敮鎸?4浣嶏紝閫氳繃浠涔堝畯瀹氫箟鏉ュ尯鍒?4浣嶈繕鏄?2浣嶉樋錛?br>
絳旓細#define ver ((2>>31)>0?64:32)
version 0.1.0 Stone jIang 2006-11-6
涓嬮潰鍒楀嚭浜嗗垵瀛CE蹇呰鐨勫熀紜鐭ヨ瘑錛屽笇鏈涜兘緇欏垵瀛CE鐨勬湅鍙嬩滑涓鐐瑰府鍔┿傜壒鍔犱笂鐗堟湰鍙鳳紝榪欐槸涓轟簡嬈㈣繋鎵瑰垽錛岃ˉ鍏呭拰淇銆?br>
1. C++/OOP銆錛堟湁涓閮ㄥ垎楂樻墜鏄疌璇█鑳屾櫙鏍規繁钂傚浐鐨勶紝鎬濊冮棶棰樹笉鏄潰鍚戝璞★紝榪欑被浜哄ACE闇瑕佸厛琛ヨˉOOP鎬濇兂)
2. Design Pattern (ACE涓嶄粎浠呮槸綾誨簱錛岃屾槸閫氳繃妯″紡鍗忓悓鍦ㄤ竴璧風殑涓緋誨垪鐩稿叧鐨勭被錛屽鏋滃璁捐妯″紡鐔熸倝錛岄偅涔堜細鐢ㄥ姪浜庡涔燗CE)
3. Framework
(Framework搴旇榪樹笉姝e紡錛岀浉浼肩殑璇嶈繕鍙互鏄痑rchitecture,涓嶇鐢ㄥ暐璇嶈錛屾墍瑕佹寚鍑虹殑鏄紝ACE涓嶄粎浠呮槸綾誨簱錛屾洿鏄氳繃妯″紡緇勫悎鍦ㄤ竴
璧風浉浜掑崗浣滅殑綾誨艦鎴愮殑鍗婃垚鍝併傛鏋舵湁鍒簬綾誨簱錛屽悗鑰呴氬父鏄鍔ㄧ殑琚▼搴忓憳鍐欑殑浠g爜璋冪敤錛岃屾鏋跺垯寰寰涓誨姩鍦拌皟鐢ㄧ敤鎴峰疄鐜扮殑鎺ュ彛錛屽嵆钁楀悕鐨勫ソ鑾卞潪鍘熷垯鈥斺?
Don't call me , I will call you)
4.Linux(鎴戞槸Linux鍒濅笉鑰咃紝浣嗚嚜浠庢垜寮濮嬭繘鍏inux 緙栫▼鐨勬椂鍊欙紝鎴戝氨鍙戠幇,ACE璁稿綺懼崕婧愯嚜Linux錛屼互鍓嶅ACE鐞嗚В鏈夐檺錛屼笉鐭ラ亾涓轟粈涔堣繖鏍鳳紝鍏跺疄鍦↙inux涓兘鎵懼埌絳旀錛孉CE閲岄棯鐑佺潃Linux鐨勬櫤鎱с?
5. Richard Stevens. (鑻卞勾鏃╅濈殑Richard,搴旇鏄疍ouglas鐨勮壇甯堢泭鍙嬶紝浠栫殑钁椾綔褰卞搷浜咲ouglas,涔熷氨褰卞搷鐫ACE,榪欓噷瑕佽鐨勬槸TCP/IP Illustrated 錛屽叾瀹濺ichard鍏朵粬钁椾綔錛屽儚APUE閮芥槸澶ф粙澶цˉ鐨勶級
6. 娌℃湁6浜嗐傚鏋滀綘璁や負鏈夛紝涓瀹氬憡璇夋垜銆?/div>
]]>