锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩人妻无码一区二区三区久久99,久久最新精品国产,欧美国产成人久久精品 http://www.shnenglu.com/lijialian/category/1777.htmlzh-cn Mon, 19 May 2008 23:00:20 GMT Mon, 19 May 2008 23:00:20 GMT 60 TP_Reactor 瀛︿範絎旇 http://www.shnenglu.com/lijialian/archive/2007/02/25/18971.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Sun, 25 Feb 2007 12:41:00 GMT http://www.shnenglu.com/lijialian/archive/2007/02/25/18971.html http://www.shnenglu.com/lijialian/comments/18971.html http://www.shnenglu.com/lijialian/archive/2007/02/25/18971.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/18971.html http://www.shnenglu.com/lijialian/services/trackbacks/18971.html 闃呰鍏ㄦ枃 ]]> select_reactor鐨勫師鐮佸涔犵瑪璁?/title> http://www.shnenglu.com/lijialian/archive/2007/02/24/18950.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Sat, 24 Feb 2007 12:30:00 GMT http://www.shnenglu.com/lijialian/archive/2007/02/24/18950.html http://www.shnenglu.com/lijialian/comments/18950.html http://www.shnenglu.com/lijialian/archive/2007/02/24/18950.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/18950.html http://www.shnenglu.com/lijialian/services/trackbacks/18950.html 闃呰鍏ㄦ枃 ]]> N涓猂eactor鏄惁灝辨剰鍛崇潃鏀寔N*FD_SETSIZE涓繛鎺ュ憿錛?/title> http://www.shnenglu.com/lijialian/archive/2007/02/22/18917.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Thu, 22 Feb 2007 15:25:00 GMT http://www.shnenglu.com/lijialian/archive/2007/02/22/18917.html http://www.shnenglu.com/lijialian/comments/18917.html http://www.shnenglu.com/lijialian/archive/2007/02/22/18917.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/18917.html http://www.shnenglu.com/lijialian/services/trackbacks/18917.html 聽
/**/
/*
******************************************************************* *聽Copyright聽(c)聽2006,study-record聽home *聽All聽rights聽reservered. * *聽鏂囦歡鍚嶇О聽:聽littersize.cpp聽 *聽鎽樎犅犅犅犺聽:聽榪欎釜渚嬪瓙涓昏鏄敤鏉ラ獙璇佽繖鏍蜂竴涓棶棰樸傚綋鎴戜滑紼嬪簭涓湁n涓猺eactor鐨勬椂鍊欙紝鏄惁灝辨剰鍛崇潃鎴戜滑鏀寔n*FD_SETSIZE榪炴帴. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽涓轟簡楠岃瘉榪欎釜闂,鎴戜滑浼犻掍竴涓ぇ灝忎負2鐨勫肩粰ACE_Select_Reactor鐨勬瀯閫犲嚱鏁般傜湅鏄惁鏄彧鏀寔2涓繛鎺? 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽楠岃瘉緇撴灉琛ㄦ槑錛氬湪鏈緥瀛愪腑錛岀敱浜巃cceptor娉ㄥ唽鐢ㄦ帀浜嗕竴涓紝鑰屾垜浠粰瀹氱殑鏈澶х殑handle鏁頒負2,鎵浠ュ彧鑳芥帴鍙椾竴涓繛鎺ャ?br /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽鍦ㄥ懡浠よ涓嬭緭鍏ワ細telnet聽127.0.0.1聽1234聽,鍦ㄦ垜浠浜屾杈撳叆鏃訛紝 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽鍦ㄨ皟鐢╥nt聽nRet聽=聽m_Reactor->register_handler(pEvent,聽ACE_Event_Handler::READ_MASK);鐨勬椂鍊欎竴瀹氫細澶辮觸銆?br /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽浣嗘槸鍦ㄥ懡浠よ涓嬭緭鍏?telnet聽127.0.0.1聽2345聽,鍦ㄦ垜浠涓夋杈撳叆鐨勬椂鍊欙紝璋冪敤register_handler鐨勬椂鍊欐墠浼氬け璐?br /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽浣嗘槸榪欐牱鐨勪竴孌典唬鐮佸瓨鍦ㄩ珮cpu鐨勯棶棰橈紝涔熷氨鏄綋鎶婂鎴風鍏寵皟鐨勬椂鍊欙紝cpu鍗犵敤鐜囦細寰堥珮?鎯蟲兂鐪嬶紝涓轟粈涔堝憿錛?br /> 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽鏈唬鐮佸彧鏄負浜嗛獙璇佷竴浜涗笢瑗匡紝鏈夊緢澶氫笉鍚堢悊鐨勫湴鏂癸紝璇峰姟浠跨収銆?br /> * *聽褰撳墠鐗堟湰聽:聽1.0 *聽浣溌犅犅犅犺吢?聽study-record聽聽聽2007-2-22 * ********************************************************************
*/
#include聽
"
ace/Thread_Manager.h
"
#include聽
"
ace/Select_Reactor.h
"
#include聽
"
ace/Reactor.h
"
#include聽
"
ace/Event_Handler.h
"
#include聽
"
ace/SOCK_Acceptor.h
"
#include聽
"
ace/SOCK_Stream.h
"
#include聽
"
ace/INET_Addr.h
"
const
聽size_t聽g_unOneMaxHandle聽
=
聽
2
;
const
聽size_t聽g_unTwoMaxhandle聽
=
聽
4
;
static
聽ACE_THR_FUNC_RETURN聽event_loop_one聽(
void
聽
*
arg)聽
{ 聽聽聽聽ACE_Reactor聽
*
reacator聽
=
聽static_cast
<
ACE_Reactor聽
*>
(arg); 聽聽聽聽reacator
->
owner(ACE_Thread::self()); 聽聽聽聽reacator
->
run_reactor_event_loop(); 聽聽聽聽
return
聽
0
; }
static
聽ACE_THR_FUNC_RETURN聽event_loop_two聽(
void
聽
*
arg)聽
{ 聽聽聽聽ACE_Reactor聽
*
reacator聽
=
聽static_cast
<
ACE_Reactor聽
*>
(arg); 聽聽聽聽reacator
->
owner(ACE_Thread::self()); 聽聽聽聽reacator
->
run_reactor_event_loop(); 聽聽聽聽
return
聽
0
; }
class
聽TestHandleEvent:聽
public
聽ACE_Event_Handler
{
public
: 聽聽聽聽
virtual
聽
int
聽handle_input聽(ACE_HANDLE聽fd聽
=
聽ACE_INVALID_HANDLE) 聽聽聽聽
{ 聽聽聽聽聽聽聽聽ACE_DEBUG((LM_DEBUG,聽
"
TestHandleEvent::handle_input\n
"
)); 聽聽聽聽聽聽聽聽
return
聽
0
; 聽聽聽聽}
; 聽聽聽聽
virtual
聽
int
聽handle_close聽(ACE_HANDLE聽handle,聽ACE_Reactor_Mask聽close_mask) 聽聽聽聽
{ 聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽ACE_DEBUG((LM_DEBUG,聽
"
TestHandleEvent::handle_close\n
"
)); 聽聽聽聽聽聽聽聽delete聽
this
; 聽聽聽聽聽聽聽聽
return
聽
0
; 聽聽聽聽}
; 聽聽聽聽ACE_HANDLE聽get_handle(
void
)聽
const
聽 聽聽聽聽
{ 聽聽聽聽聽聽聽聽
return
聽peer.get_handle(); 聽聽聽聽}
public
: 聽聽聽聽ACE_SOCK_Stream聽peer; }
;
class
聽TestAcceptor聽:聽
public
聽ACE_Event_Handler
{
public
: 聽聽聽聽
virtual
聽
int
聽handle_input聽(ACE_HANDLE聽fd聽
=
聽ACE_INVALID_HANDLE) 聽聽聽聽
{ 聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽TestHandleEvent
*
聽pEvent聽
=
聽
new
聽TestHandleEvent; 聽聽聽聽聽聽聽聽acceptor.accept(pEvent
->
peer); 聽聽聽聽聽聽聽聽
int
聽nRet聽
=
聽m_Reactor
->
register_handler(pEvent,聽ACE_Event_Handler::READ_MASK); 聽聽聽聽聽聽聽聽
if
聽(
-
1
聽
==
聽nRet) 聽聽聽聽聽聽聽聽
{ 聽聽聽聽聽聽聽聽聽聽聽聽delete聽pEvent; 聽聽聽聽聽聽聽聽聽聽聽聽pEvent聽
=
聽NULL; 聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
return
聽
0
; 聽聽聽聽}
; 聽聽聽聽
virtual
聽
int
聽handle_close聽(ACE_HANDLE聽handle,聽ACE_Reactor_Mask聽close_mask) 聽聽聽聽
{ 聽聽聽聽聽聽聽聽ACE_DEBUG((LM_DEBUG,聽
"
TestAcceptor::handle_close\n
"
)); 聽聽聽聽聽聽聽聽acceptor.close(); 聽聽聽聽聽聽聽聽delete聽
this
; 聽聽聽聽聽聽聽聽
return
聽
0
; 聽聽聽聽}
; 聽聽聽聽 聽聽聽聽 聽聽聽聽TestAcceptor(ACE_Reactor
*
聽reactor):m_Reactor(reactor) 聽聽聽聽
{ 聽聽聽聽聽聽聽聽 聽聽聽聽}
; 聽聽聽聽
int
聽open(unsigned聽
short
聽usport) 聽聽聽聽
{ 聽聽聽聽聽聽聽聽ACE_INET_Addr聽addr(usport); 聽聽聽聽聽聽聽聽acceptor.open(addr); 聽聽聽聽聽聽聽聽
return
聽m_Reactor
->
register_handler(
this
,聽ACE_Event_Handler::ACCEPT_MASK); 聽聽聽聽}
; 聽聽聽聽ACE_HANDLE聽get_handle(
void
)聽
const
聽 聽聽聽聽
{ 聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽
return
聽acceptor.get_handle(); 聽聽聽聽}
public
: 聽聽聽聽ACE_SOCK_Acceptor聽acceptor; 聽聽聽聽ACE_Reactor
*
聽m_Reactor; }
;
int
聽main聽(
int
聽argc,聽
char
聽
*
argv[])
{ 聽聽聽聽 聽聽聽聽ACE_Select_Reactor聽select_reactor_one(g_unOneMaxHandle,聽
0
,聽
0
,聽
0
,聽
1
); 聽聽聽聽ACE_Reactor
*
聽reactor_one聽
=
聽
new
聽ACE_Reactor(
&
select_reactor_one); 聽聽聽聽ACE_Select_Reactor聽select_reactor_two(g_unTwoMaxhandle,聽
0
,聽
0
,聽
0
,聽
1
); 聽聽聽聽ACE_Reactor
*
聽reactor_two聽
=
聽
new
聽ACE_Reactor(
&
select_reactor_two); 聽聽聽聽TestAcceptor聽test_acceptor(reactor_one); 聽聽聽聽test_acceptor.open(
1234
); 聽聽聽聽TestAcceptor聽test_acceptorw(reactor_two); 聽聽聽聽test_acceptorw.open(
2345
); 聽聽聽聽 聽聽聽聽 聽聽聽聽ACE_Thread_Manager::instance()
->
spawn(event_loop_one,聽reactor_one); 聽聽聽聽ACE_Thread_Manager::instance()
->
spawn(event_loop_two,聽reactor_two); 聽聽聽聽
return
聽ACE_Thread_Manager::instance()
->
wait(); }
]]>寮傛I/O http://www.shnenglu.com/lijialian/archive/2006/10/07/13410.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Sat, 07 Oct 2006 05:57:00 GMT http://www.shnenglu.com/lijialian/archive/2006/10/07/13410.html http://www.shnenglu.com/lijialian/comments/13410.html http://www.shnenglu.com/lijialian/archive/2006/10/07/13410.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/13410.html http://www.shnenglu.com/lijialian/services/trackbacks/13410.html 璧勬簮錛歨ttp://www.zahui.com/html/9/35437.htm ]]> 鍏充簬ACE_TP_Reactor http://www.shnenglu.com/lijialian/archive/2006/10/07/13408.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Sat, 07 Oct 2006 03:29:00 GMT http://www.shnenglu.com/lijialian/archive/2006/10/07/13408.html http://www.shnenglu.com/lijialian/comments/13408.html http://www.shnenglu.com/lijialian/archive/2006/10/07/13408.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/13408.html http://www.shnenglu.com/lijialian/services/trackbacks/13408.html 鍦ˋddison-Wesley - C++NetworkProgrammingVol2鐨?.3 The ACE_TP_Reactor Class涓湁榪欐牱鍑犲彞璇濓紝璁╂垜瓚寵凍鎯充簡涓澶┿?br /> 1.Multiple threads running an ACE_TP_Reactor event loop can process
events concurrently on different handles 2.They can also dispatch timeout and I/O callback methods concurrently on the same
event handler 3.The only serialization in the ACE_TP_Reactor occurs when I/O events
occur concurrently on the same handle 4.After a thread obtains a set of active handles from select() , the other
reactor threads dispatch from that handle set instead of calling
select() again 鍏跺疄涓婇潰鐨?鍙ヨ瘽涓昏琛ㄨ揪榪欐牱鐨勫嚑灞傚惈涔?br />1.騫惰澶勭悊涓嶅悓handle涓婄殑浜嬩歡 2.騫惰澶勭悊鍚屼竴event handler涓婄殑瓚呮椂鍥炶皟鍑芥暟鍜孖/O鍥炶皟鍑芥暟 3.澶氫釜綰跨▼涓茶澶勭悊鍚屼竴涓猦andle涓婄殑I/O浜嬩歡銆?br />4.铏界劧TP_Reactor鏄敤leader/follow妯″紡杞祦璋冪敤select,浣嗘槸濡傛灉涓涓猻elect()鑾峰緱浜嗗涓縺媧葷殑handle,閭d箞鍏朵粬鐨勭嚎紼嬩細鍒嗗彂榪欎簺handle 錛岃屼笉鏄幓鍐嶆璋冪敤select. 聽(榪欑偣榪樻病鏈夋兂閫氾紝涔熸病鏈夌湅瑙佹槸濡備綍瀹炵幇鐨勶紵)鈥滃涓嚎紼嬩覆琛屽鐞嗗悓涓涓猦andle涓婄殑I/O浜嬩歡鈥?/u> 聽聽聽 聽聽 榪欎釜鏄浣曡揪鍒扮殑鍛紵ACE婧愮爜涓紝褰撳鐞咺/O浜嬩歡鐨勬椂鍊欙紝浼氬皢HANDLE 鎸傝搗錛屼嬌寰椾笉鍐嶅璇?font size="3">HANDLE 鍋氫簨浠朵睛鍚傛潵杈懼埌鍚屼竴涓?font size="3">handle涓?/font> 鐨処/O浜嬩歡鏄澶氫釜綰跨▼涓茶鍦板鐞嗐?/span>"騫惰澶勭悊鍚屼竴event handler涓婄殑瓚呮椂鍥炴帀鍑芥暟鍜孖/O鍥炶皟鍑芥暟" 聽聽聽 聽聽 榪欐牱濂藉儚灝辨瘮杈冮夯鐑︿簡銆傚洜涓鴻繖灝辨剰鍛崇潃TP_Reactor鍙繚璇佸悓涓涓猦andle涓嬩笉浼氭湁澶氱嚎紼嬪悓鏃惰皟鐢↖/O浜嬩歡錛屼絾鏄嵈鏈夊彲鑳藉悓鏃惰皟鐢ㄨ秴鏃跺洖璋冨嚱鏁板拰I/O鍥炶皟鍑芥暟銆傚鏋滃湪榪欎袱涓嚱鏁頒腑鏈夊鏁版嵁鐨勮闂拰鎿嶄綔錛岃繖灝辨剰鍛崇潃闇瑕佹湁閿佺殑寮曞叆銆備緥澶栵紝濡傛灉鍦ㄥ畾鏃跺櫒澶勭悊涓紝瓚呰繃瀹氭椂鐨勪簨浠墮棿闅旓紝灝變細鏈変護涓涓嚎紼嬪啀嬈¤皟鐢ㄥ畾鏃跺櫒鐨勫鐞嗗嚱鏁幫紝涓涓嬪瓙寮曞叆浜嗗緢澶氬悓姝ョ殑闂銆傚浣曡В鍐寵繖涓棶棰樺憿錛?br /> 鏂規硶涓錛?br /> 聽聽聽 聽聽聽 聽聽聽 鏇存敼ACE鐨勬簮鐮侊紝璞″鐞唖ocket浜嬩歡涓鏍鳳紝鍦ㄥ鐞嗗畾鏃朵簨浠剁殑鏃跺欙紝涔熸妸HANDLE鎸傝搗銆傛潵鑷猦ttp://cpunion.cnblogs.com/archive/2005/08/09/210941.htmlint ACE_TP_Reactor::handle_timer_events聽(int 聽 & 聽 /* event_count */ , 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ACE_TP_Token_Guard聽 & guard) { 聽聽 // 聽Get聽the聽current聽time 聽聽ACE_Time_Value聽cur_time聽( this -> timer_queue_ -> gettimeofday聽()聽 + 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽this -> timer_queue_ -> timer_skew聽()); 聽聽 // 聽Look聽for聽a聽node聽in聽the聽timer聽queue聽whose聽timer聽<=聽the聽present 聽聽 // 聽time. 聽聽ACE_Timer_Node_Dispatch_Info聽info; 聽聽 if 聽( this -> timer_queue_ -> dispatch_info聽(cur_time, 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽info)) 聽聽聽聽{ 聽聽聽聽聽聽聽聽 // 聽********聽fixed聽by聽lijie聽*********** 聽聽聽聽聽聽聽聽 if 聽(info.type_ -> get_handle聽()聽 != 聽ACE_INVALID_HANDLE) 聽聽聽聽聽聽聽聽{ 聽聽聽聽聽聽聽聽聽聽聽聽 if 聽( this -> is_suspended_i聽(info.type_ -> get_handle聽())) 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return 聽 0 ; 聽聽聽聽聽聽聽聽聽聽聽聽 this -> suspend_handler聽(info.type_ -> get_handle聽()); 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 // 聽********聽end聽********************** 聽聽聽聽聽聽const 聽 void 聽 * upcall_act聽 = 聽 0 ; 聽聽聽聽聽聽 // 聽Preinvoke. 聽聽聽聽聽聽 this -> timer_queue_ -> preinvoke聽(info, 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽cur_time, 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽upcall_act); 聽聽聽聽聽聽 聽聽聽聽聽聽 // 聽Release聽the聽token聽before聽dispatching聽notifies 聽聽聽聽聽聽guard.release_token聽(); 聽聽聽聽聽聽 // 聽call聽the聽functor 聽聽聽聽聽聽 this -> timer_queue_ -> upcall聽(info, 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽cur_time); 聽聽聽聽聽聽 // 聽Postinvoke 聽聽聽聽聽聽 this -> timer_queue_ -> postinvoke聽(info, 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽cur_time, 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽upcall_act); 聽聽聽聽聽聽 // 聽We聽have聽dispatched聽a聽timer 聽聽聽聽聽聽 return 聽 1 ; 聽聽聽聽} 聽聽 return 聽 0 ; } handle_timer澶勭悊瀹屼互鍚庯紝榪斿洖浠ュ墠錛屽姞涓婅繖鍙ヨ瘽 this->reactor ()->resume_handler (this->get_handle ()); 褰撶劧鍒繕浜嗕負Handler緙栧啓get_handle()鍑芥暟錛?br />ACE_HANDLE聽Test_Handler::get_handle聽()聽 const { 聽聽聽聽return 聽 this -> peer聽().get_handle聽(); }
鏂規硶浜岋細 聽聽聽 聽聽 聽聽 聽聽 鍒╃敤 ACE_Pipe 鍜?/span>ACE_Message_Queue 鎶婃墍鏈夌殑浜嬩歡閮芥帓闃熷埌鍚屼竴涓?/span>I/O HANDLE 涓婂幓錛屽啀鐢?/span>ACE_TP_Reactor 閫氳繃澶氫釜綰跨▼欏哄簭涓茶鍦?/u> 瑙﹀彂鎴戜滑鏃х殑 event_handler 鏉ュ鐞嗚繖浜涘凡緇忔帓濂介槦鐨勪簨浠?/span>/ 娑堟伅銆傛垜姣旇緝璧炴垚鐢ㄨ繖鏍鋒柟娉曘傝鏂規硶鏉ヨ嚜錛?/span> http://blog.csdn.net/zhdaniel/archive/2006/06/29/850888.aspx 聽聽聽
聽聽聽 聽聽 鏂規硶涓夛細 聽聽聽 聽聽 聽聽 聽聽 ^_^騫茶剢灝變笉瑕佸鍚屼竴涓猠vent聽 handler娉ㄥ唽I/O浜嬩歡鍜屽叾浠栦簨浠躲?br />
]]> 鍏充簬MPC鐨勯棶棰樻敹闆?/title> http://www.shnenglu.com/lijialian/archive/2006/06/24/8949.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Sat, 24 Jun 2006 02:18:00 GMT http://www.shnenglu.com/lijialian/archive/2006/06/24/8949.html http://www.shnenglu.com/lijialian/comments/8949.html http://www.shnenglu.com/lijialian/archive/2006/06/24/8949.html#Feedback 1 http://www.shnenglu.com/lijialian/comments/commentRss/8949.html http://www.shnenglu.com/lijialian/services/trackbacks/8949.html http://www.ociweb.com/products/mpc/faq.html#006 Q :褰撶敓鎴愬伐紼嬫枃浠跺悕縐扮殑鏃跺?鍙互鏀瑰彉宸ョ▼鏂囦歡鐨勫悕縐板悧? A:褰撶敤MPC鐢熸垚宸ョ▼鏂囦歡鐨勬椂鍊?鍙互鐢?name_modifier 閫夐」鏉ヤ慨鏀瑰伐紼嬫枃浠跺悕縐?濡傛灉浣犱篃鎯充慨鏀瑰伐紼嬬殑鍚嶇О,鍙互澧炲姞-apply_project.濡備笅: mwc.pl -static -type vc6 -name_modifier *_Static -apply_project 濡傛灉鐢ㄤ簡榪欎簺閫夐」,鎵鏈夌殑宸ヤ綔絀洪棿,宸ョ▼鏂囦歡鍜屽伐紼嬪悕閮戒互_Static緇撳熬. Q:鎬庢牱鐢∕PC鍦ㄦ瘡涓洰褰曠敓鎴愪竴涓伐浣滅┖闂? A:褰撹繍琛宮wc.pl鐨勬椂鍊欏姞涓?hierarchy閫夐」.瀵逛簬鎵鏈夊熀浜?make'鐨勫伐浣滅┖闂存槸榛樿鐨? Q:鎬庢牱鍛婅瘔MPC鍦ㄥ鎵緈wc鍜宮pc鏂囦歡鏃?涓嶈瀵繪壘鏌愪釜鐗規畩鐨勮礬寰? A:-exclude鍙互鐢ㄤ簬榪欎釜鐩殑.浣嗘槸榪欎釜璺緞蹇呴』鏄竴涓浉瀵逛簬MPC榪愯鐨勮礬寰?濡? mwc.pl -exclude this_dir,this_dir_too,and_another_dir Q:鎬庢牱鍦ㄦ垜鐨勫伐浣滅┖闂翠腑鐢?value_template A:鍦╩wc鏂囦歡涓?浣犺兘鐢ㄥ緢澶歮wc.pl鐨勫懡浠よ閫夐」.瑕佸姞涓奵mdline鍏抽敭瀛?濡傛灉鍦ㄥ懡浠よ涓渶瑕佹湁絀烘牸,蹇呴』鍖呭惈鍦?"涔嬩腑.濡? workspace { 聽 // Set the command line value to change the configurations with vc6, vc71 and vc8 聽 cmdline += -value_template "configurations='MFC Release' 'MFC Debug'" } Q:鏈夋病鏈夊姙娉曞湪Solaris,宸ョ▼涓寘鍚竴涓枃浠?浣嗘槸鍦↙inux涓婁笉鍖呭惈璇ユ枃浠跺憿? A:浣犲彲浠ョ敤feature瀹氫箟涓涓猙ase宸ョ▼.濡備笅: // config/default.features solaris_only = 0 // some_base.mpb feature(solaris_only) { 聽 Source_Files { 聽聽聽 source1.cpp 聽聽聽 source2.cpp 聽 } }聽 // your_project.mpc project: some_base { 聽 Source_Files { 聽聽聽 source3.cpp 聽聽聽 source4.cpp 聽 } }聽 Q:鍙笉鍙互涓浜涢夐」鐢ㄤ簬鏌愬鎴鋒枃浠?鑰屽彟澶栦竴浜涚敤浜庡叾浠栫殑瀹㈡埛鏂囦歡鍛? A:浣犲彲浠ヤ負鐢ㄦ埛鐨勮緭鍏ユ枃浠跺垱寤哄涓儴鍒?濡備笅:project: foo { FOO_Files { foo.file } FOO_Files { commandflags += -QR bar.file } } Q:鏈夋病鏈夊姙娉曡〃鏄庣紪璇戦夐」? A:鍙互鐢?specific' .濡? project { 聽 specific(make) { 聽聽聽 compile_flags += -fcheck-new 聽 } 聽 specific(vc71) { 聽聽聽 compile_flags += /wd4103 聽 } }聽 Q:鍦ㄤ竴涓伐浣滅┖闂翠腑,鎯蟲湁闈欐佸拰鍔ㄦ佺殑宸ョ▼? A:鍦╩wc鏂囦歡涓?寤虹珛涓涓煙鑼冨洿.澧炲姞-static鍒板懡浠よ閫夐」.濡? workspace { 聽 // These projects will be static 聽 some_scope_name { 聽聽聽 cmdline += -static 聽聽聽 my_projects_dir聽聽 聽聽聽 my_other_projects_dir 聽 } 聽 // Anything outside the scope will have the command line options provided at the start of mwc.pl 聽 another_dir } Q:鏈夋病鏈夋柟娉曞湪mpc鏂囦歡涓〃鏄庤繖涓簱蹇呴』鏄潤鎬佸簱,鍏朵粬鐨勫簱涓嶈兘鎶婂畠鐢ㄥ仛鍔ㄦ佸簱? A:璁劇疆闈欐佸簱鍚?鑰屽姩鎬佸簱鍚嶄負絀? project { 聽 sharedname = 聽 staticname = foo } Q:MPC娣誨姞d.lib鍒版墍鏈夌殑搴?鏈夋病鏈夊姙娉曞叧鎺夊畠? A:鍦╩pc鏂囦歡涓敤'lit_libs'浠f浛libs Q:涓簐c6鍜寁c71鐢熸垚闈欐佸伐紼?鍙槸鍗存病鏈夊伐紼嬬殑渚濊禆? A:鍙互閫氳繃璁劇疆MPC_DEPENDENCY_COMBINED_STATIC_LIBRARY鐜鍙橀噺,寮鴻揩MPC鐢熸垚宸ョ▼闂寸浉浜掍緷璧栫殑鐨勯潤鎬佸簱. Q:鏈夋病鏈夋柟娉曞彲浠ュ己鍒跺湪闈欐佸簱鍚嶅悗鏈?s'浣嗘槸debug鐗堟湰娌℃湁'd' A:鏄殑,浣犺兘璁劇疆lib_modifier,鐢ㄨ繖涓厤緗駭浣嶅煙淇敼鍣?鍦ㄤ笅闈㈢殑渚嬪瓙涓?鍋囪-static閫夐」宸茬粡浼犻掔粰浜哅PC project { 聽 // Override the values of 's' and 'sd' respectively. 聽 specific { 聽聽聽 Release::lib_modifier = 聽聽聽 Debug::lib_modifier = d 聽 } }聽 Q:鐢盡PC鐢熸垚鐨刅C71宸ョ▼,鐢╮elease ,鐢熸垚鐨勬墽琛屾枃浠跺湪release鐩綍涓?鑰宒ebug鏄湪"."鐩綍涓?鎬庢牱鎵嶈兘鎶婃墽琛屾枃浠舵斁鍦╠ebug鐩綍涓? 聽聽聽 A: 澧炲姞鏀硅鍒癕PC宸ョ▼涓?br />project {聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽 specific(nmake, vc6, vc7, vc71, vc8) { 聽聽聽 Debug::install = Debug 聽 } } Q:濡備綍鐢熸垚鏀寔MFC鐨勭増鏈?br />A:MPC鐨勫懡浠よ澧炲姞涓嬮潰涓琛?br />-value_template "configurations='MFC Release' 'MFC Debug'" 榪欎釜鍙互鐢ㄤ簬 em3, nmake, vc6, vc7, vc71 鍜?vc8 宸ョ▼綾誨瀷鐨勯厤緗?br />鎻愰啋涓涓嬶紝鍒繕浜嗗垱寤篶onfig.h鏂囦歡錛屽唴瀹圭被浼煎涓嬶細 #include "config-win32.h" #include "config-win32-msvc-7.h" ]]> 緗戠粶緙栫▼鍗? ACE_WFMO_Reactor鐨勫茍鍙戣冭檻 http://www.shnenglu.com/lijialian/archive/2006/06/23/8906.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Fri, 23 Jun 2006 12:48:00 GMT http://www.shnenglu.com/lijialian/archive/2006/06/23/8906.html http://www.shnenglu.com/lijialian/comments/8906.html http://www.shnenglu.com/lijialian/archive/2006/06/23/8906.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/8906.html http://www.shnenglu.com/lijialian/services/trackbacks/8906.html 娉ㄥ唽鏀瑰彉鐨勫崗璋?宸叉敞鍐屽彞鏌勯泦鍚堢殑姣忎竴涓敼鍙?灝嗕細褰卞搷鍒版墍鏈夋墽琛屼簨浠跺驚鐜殑綰跨▼.鍦ㄦ病鏈夊悓姝ョ殑鎯呭喌涓嬪厑璁歌繖浜涙敼鍙樼殑鍙戠敓,浼氬鑷翠涪澶變簨浠?鎴栦笉姝g‘,涓嶅悎娉曠殑鍙ユ焺琚垎鍙?涓轟簡鍦ㄥ綰跨▼鐨勬儏鍐典笅,姝g‘鐨勫鐞嗘敞鍐屽彂鐢熸敼鍙樼殑鎯呭喌,ACE_WFMO_Reactor緇存寔浜嗕笁涓彞鏌勪俊鎭泦鍚堝璞? 鐢ㄤ綔浜嬩歡渚︽煡鍜屽垎鍙戠殑褰撳墠鍙ユ焺 鏂板彞鏌? 闄や簡褰撳墠鍙ユ焺闆嗗悎,鏂板彞鏌勪篃鍦ㄧ瓑寰?/li> 鎸傝搗鍙ユ焺,鏄綋鍓嶅彞鏌勪腑鎸傝搗鐨勫彞鏌?/li> 褰撻渶瑕佹敼鍙樺凡娉ㄥ唽鐨勫彞鏌勬椂,(渚嬪:娉ㄥ唽,縐婚櫎,鎸傝搗鍜屾仮澶嶄竴涓簨浠跺鐞嗗櫒),瑕佽浣忓彞鏌?浜嬩歡澶勭悊鍣?浜嬩歡綾誨瀷淇℃伅,鍜岀浉鍏充俊鎭殑璁板綍.涓嬩竴涓畬鎴恏andle_events鐨勭嚎紼嬩細娉ㄦ剰鍒拌繖涓敼鍙?鑾峰彇reactor鐨勯攣,絳夊緟鎵鏈夊叾浠栨鍦ㄨ繍琛宧andle_events鐨勭嚎紼嬪畬鎴?涓轟簡鑳借榪欎簺綰跨▼鍙婃椂鐨勫畬鎴?絳夊緟鐨勭嚎紼嬪彂閫佷竴涓唴閮ㄤ簨浠?璇ュ唴閮ㄤ簨浠舵槸鍒嗗彂鍙ユ焺闆嗗悎鐨勪竴閮ㄥ垎.鍞ら啋鎵鏈夐樆濉炲湪WaitForMultipleObjects鐨勭嚎紼?榪欎釜鏃跺?鎵鏈夌殑浜嬩歡澶勭悊綰跨▼灝嗕細闃誨鍦ㄧ瓑寰呭彉鍖栫殑鍙戠敓.褰撳師濮嬬殑綰跨▼瀹屾垚蹇呰鐨勪俊鎭拰鍙ユ焺鏀瑰彉鍚?閲婃斁reactor鐨勯攣.鎵鏈夌殑浜嬩歡澶勭悊綰跨▼閲嶆柊寮濮嬪湪鏇存柊鍚庣殑鍙ユ焺闆嗗悎涓婅繘琛岀瓑寰?鍒嗙鍜屽垎鍙?鎺ㄨ繜浜嬩歡澶勭悊鍣ㄧ殑娓呴櫎.ACE_WFMO_Reactor娉ㄥ唽鏀瑰彉鐨勫歡榪熷紩鍏ヤ簡涓浜涗笌鍩轟簬select()鐨勫弽搴斿櫒鐨勪笉鍚屼箣澶?褰揾anle_*()鏂規硶榪斿洖-1鎴栬匒CE_Reactor::remove_handler()琚簨浠跺鐞嗗櫒璋冪敤鏃?瀹冩帹榪熶簨浠跺鐞嗗櫒鐨勭Щ闄ゅ拰handle_close()閽╁瓙鍑芥暟鐨勫洖璋?鐩村埌涓婇潰璇磋鐨勬敞鍐屾敼鍙樺彂鐢?鎵浠ヤ竴涓簲鐢ㄥ湪璇鋒眰ACE_WFMO_Reactor縐婚櫎涓涓簨浠跺鐞嗗櫒涔嬪悗,涓嶈兘绔嬪嵆鍒犻櫎璇ヤ簨浠跺鐞嗗櫒,鍚﹀垯reator鍚庢潵璋冪敤鐨刪andle_close()鏂規硶浼氬垎鍙戜竴涓棤鏁堢殑鎸囬拡. ]]> ACE鐨勭浉鍏崇殑鍑犱釜緗戝潃 http://www.shnenglu.com/lijialian/archive/2006/06/13/8500.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Tue, 13 Jun 2006 07:23:00 GMT http://www.shnenglu.com/lijialian/archive/2006/06/13/8500.html http://www.shnenglu.com/lijialian/comments/8500.html http://www.shnenglu.com/lijialian/archive/2006/06/13/8500.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/8500.html http://www.shnenglu.com/lijialian/services/trackbacks/8500.html http://www.cs.wustl.edu/~schmidt/ACE/book1/Errata.txthttp://www.cs.wustl.edu/~schmidt/ACE/book2/Errata.txt 鑻辨枃璁ㄨ緇?br />http://groups.google.com/group/comp.soft-sys.ace http://groups.google.com/group/comp.soft-sys.ace?lnk=oa 涓枃璁ㄨ鍖?br />http://forum.huihoo.com/forumdisplay.php?fid=125 鐩稿叧鏂囨。http://www.cs.wustl.edu/~schmidt/ACE.html 鏈夊叧mpc闂 http://www.ociweb.com/products/mpc/faq.html#021 婧愮爜涓爣璁扮殑鍚箟 http://www.stack.nl/~dimitri/doxygen/commands.html ]]> 闈為樆濉濧cceptor鐨勫姩鏈?/title> http://www.shnenglu.com/lijialian/archive/2006/06/12/8446.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Mon, 12 Jun 2006 03:18:00 GMT http://www.shnenglu.com/lijialian/archive/2006/06/12/8446.html http://www.shnenglu.com/lijialian/comments/8446.html http://www.shnenglu.com/lijialian/archive/2006/06/12/8446.html#Feedback 0 http://www.shnenglu.com/lijialian/comments/commentRss/8446.html http://www.shnenglu.com/lijialian/services/trackbacks/8446.html 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Sidebar 14: Motivation for Nonblocking Acceptors 聽聽聽聽聽聽聽聽 褰撴妸涓涓狝cceptor socket浼犻掔粰select(),濡傛灉鏀跺埌涓涓摼鎺?閭d箞璇ocket琚爣璇嗕負嬋媧葷姸鎬?寰堝鏈嶅姟鍣ㄥ埄鐢ㄨ繖涓簨浠跺幓琛ㄦ槑鍙互璋冪敤accept(),涓嶄細寮曡搗闃誨.涓嶅垢鐨勬槸,鏈夋潵鑷猅CP/IP寮傛琛屼負鐨勮祫婧愮珵浜?鍦ㄥ疄闄呬腑,select()涔嬪悗灝辮〃鏄庝竴涓猘cceptor socket鏄縺媧葷殑(浣嗘槸鍦╝ccept()璋冪敤涔嬪墠),client鍙互鍏抽棴瀹冪殑榪炴帴,涓鏃ccept()闃誨娼滃湪鐨勬寕璧鋒暣涓繘紼?涓轟簡閬垮厤榪欎釜闂,acceptor socket褰撳拰select()涓璧蜂嬌鐢ㄧ殑鏃跺?搴旇涓鐩磋璁劇疆涓洪潪闃誨鐨勬ā寮?/strong>.鍦ˋCE涓?榪欐宸ヤ綔寰堟柟渚?鍙浼犻扐CE_NONBLOCK鏍囪瘑緇檈nable()鏂規硶灝卞彲浠ヤ簡.enable()鏂規硶鏄疉CE_IPC_SAP鎻愪緵鐨?鎵浠CE_SOCK_Acceptor涔熸嫢鏈? ]]> error LNK2019:鏃犳硶瑙f瀽鐨勫閮ㄧ鍙?/title> http://www.shnenglu.com/lijialian/archive/2006/06/11/8435.html涓鍔ㄤ笉濡備竴闈?/dc:creator>涓鍔ㄤ笉濡備竴闈?/author>Sun, 11 Jun 2006 15:18:00 GMT http://www.shnenglu.com/lijialian/archive/2006/06/11/8435.html http://www.shnenglu.com/lijialian/comments/8435.html http://www.shnenglu.com/lijialian/archive/2006/06/11/8435.html#Feedback 4 http://www.shnenglu.com/lijialian/comments/commentRss/8435.html http://www.shnenglu.com/lijialian/services/trackbacks/8435.html 2.紜繚ACE.lib鎴朅CEd.lib鑳芥紜殑閾炬帴鍒板伐紼嬩腑. 3.濡傛灉鍑虹幇"__declspec(dllimport) int __cdecl ace_os_main_i"瀛楁牱鐨勯摼鎺ラ敊璇?鍙互鑰冭檻鍔犱笂#include "ace/OS_main.h" ]]>
狠色狠色狠狠色综合久久 |
亚洲日本va中文字幕久久 |
久久久久国产一级毛片高清版 |
国产精品综合久久第一页
|
色8激情欧美成人久久综合电 |
中文成人久久久久影院免费观看 |
久久久久亚洲AV成人片 |
91麻豆国产精品91久久久 |
久久国产成人亚洲精品影院 |
久久99精品久久久久婷婷 |
久久精品国产亚洲av麻豆蜜芽 |
久久这里只有精品视频99 |
久久国产三级无码一区二区
|
狠狠色丁香久久综合五月 |
国产成人精品久久综合 |
久久久亚洲欧洲日产国码二区 |
中文精品久久久久国产网址 |
91久久精一区二区三区大全 |
久久国产亚洲高清观看 |
国产成人综合久久精品红 |
久久精品综合一区二区三区 |
国产V综合V亚洲欧美久久 |
久久天天躁狠狠躁夜夜2020一
|
久久99精品国产自在现线小黄鸭 |
久久这里都是精品 |
精品久久人人爽天天玩人人妻 |
青青草原综合久久大伊人精品 |
看久久久久久a级毛片 |
蜜桃麻豆www久久 |
久久综合给合久久狠狠狠97色 |
久久精品日日躁夜夜躁欧美 |
性做久久久久久免费观看 |
久久久久国色AV免费看图片 |
国产精品激情综合久久 |
品成人欧美大片久久国产欧美... |
久久精品无码一区二区无码 |
1000部精品久久久久久久久 |
99久久99这里只有免费费精品 |
婷婷久久久亚洲欧洲日产国码AV |
国产精品一区二区久久精品 |
久久久久久久综合日本亚洲 |