ÓÃCSocket¹¹½¨C/S½á¹¹
תÌûhttp://www.cppblog.com/bidepan2023/archive/2008/01/22/41632.html
CSocketÅÉÉúÓÚCAsyncSocket, ËùÓÐÊ©ÖîÓÚÉϵIJÙ×÷½ÔΪͬ²½²Ù×÷¡£±ÈÈçConnnect,ReceiveµÈ¡£
ͬ²½²Ù×÷µÄÓŵãÊǼòµ¥Ò×Ó㬵«È±µãÒ²ÏÔ¶øÒ×¼û£¬Ð§ÂʵÍÏ£¬ÒòΪÄã±ØÐëµÈµ½Ò»¸ö²Ù×÷Íê³ÉÖ®ºó²ÅÄܽøÐÐÏÂÒ»¸ö²Ù×÷¡£
Èç¹ûÄãºÜ¹ØÐÄЧÂÊ£¬¾ÍÓ¦¸ÃÓÅÏÈʹÓÃCAsyncSocket¡£·´Ö®¾ÍÓÃCSocket¡£
ÏÂÃæ½«ËµÃ÷ÈçºÎÓÃCSocket´´½¨¼òµ¥µÄ·þÎñÆ÷ºÍ¿Í»§¶Ë¡£
[´´½¨·þÎñÆ÷]
·þÎñÆ÷µÄÔË×÷ÓÐ5¸ö½×¶Î:
1. ´´½¨·þÎñÆ÷Socket²¢¿ªÆô¼àÌý¡£
2. »ñȡеĿͻ§¶ËÁ¬½ÓSocket£¬½«Ö®¼ÓÈë¿Í»§¶ËSocketÁбíÒÔ¹ÜÀíÖ®¡£
3. ¿Í»§¶ËSocket¶ÁÈ¡Êý¾Ý²¢·¢ËÍÊý¾Ý¡£
4. ¿Í»§¶ËÁ¬½Ó±»¶¯¹Ø±Õ£¬´ÓÁбíɾ³ý¡£
5. ³ÌÐò¹Ø±Õ£¬½ø¶ø·þÎñÆ÷Á¬½ÓÖ÷¶¯¹Ø±Õ¡£
ΪÁËά³Ö5½×¶ÎµÄÔË×÷£¬ÐèÒªÁ½ÖÖSocketÐͬ¹¤×÷, µÚÒ»ÖÖÓÃ×÷·þÎñÆ÷¼àÌý£¨¸ºÔð²½Öè1£¬2£¬5£©£¬µÚ¶þÖÖÓÃ×÷¿Í»§¶Ë¹ÜÀí£¨¸ºÔð²½Öè3£¬4£©¡£
Á½ÖÖSocket½ÔÅÉÉú×ÔCSocket, ͨ¹ýÖØÐ´²»Í¬µÄCSocket³ÉÔ±º¯ÊýÒÔʵÏÖ²»Í¬µÄ¹¦ÄÜ¡£
ǰÕßÐèÒªÔÚ·þÎñÆ÷³õʼ»¯½×¶Î´´½¨³öÀ´CSocket::Create()²¢¿ªÆô¼àÌýCSocket::Listen()£¨²½Öè1£©¡£²¢ÔÚ·þÎñÆ÷Í˳öʱÖ÷¶¯¹Ø±ÕÁ¬½ÓCSocket::Close()£¨²½Öè5£©¡£
ǰÕß»¹ÐèÒªÖØÐ´OnAcceptÒÔÔÚеĿͻ§¶ËÁ¬½Óµ½À´Ê±±»Í¨Öª£¬Í¬Ê±²úÉú¿Í»§¶Ë¹ÜÀíSocket£¨²½Öè2£©¡£
ºóÕßÐèÒªÖØÐ´OnReceiveÒÔÔÚÓÐÊý¾Ýµ½À´Ê±±»Í¨Öª£¬»òÖØÐ´OnCloseÒÔÔÚÁ¬½Ó±»¶¯¹Ø±Õ£¨¿Í»§¶Ë¹Ø±Õ£©Ê±±»Í¨Öª£¨²½Öè3£¬4£©¡£
¶ÁдÊý¾ÝÐèÒªCSocketFileÒÔ¼°CArchieveµÄÖ§³Ö¡£Ç°Õß½«CSocketµ±×÷Ò»¸öÎļþ£¬ºóÕßÔòÍê³ÉÔÚ´ËÎļþÉϵĶÁд²Ù×÷¡£
ͨ³£ÄãÐèÒªÌí¼ÓÒ»¸öCSocketFile³ÉÔ±£¬Á½¸öCArchieve³ÉÔ±£¨Ò»¸öÓÃÓÚ¶Á£¬Ò»¸öÓÃÓÚд£©£¬È»ºóÔÚSocket´´½¨Íê³Éºó³õʼ»¯ÕâЩ³ÉÔ±
socketFile_ = new CSocketFile( this ); // ÔÚarchive´´½¨³öÀ´ºó»ù±¾ÉϾͲ»ÐèÒª²Ù×÷ËûÁË£¬Ö±µ½Socket¹Ø±Õ
archiveIn_ = new CArchive( socketFile_, CArchive::load ); // ÓÃÓÚ¶Á
archiveOut_ = new CArchive( socketFile_, CArchive::store ); // ÓÃÓÚÈ¡
²¢ÔÚOnRecevieÖÐÓÃarchiveIn_¶ÁÈ¡Êý¾Ý£¬ÓÃarchiveOut_дÈëÊý¾Ý¡£ÏñÕâÑù£º
int value;
archiveIn_ >> value;
archiveOut_ << value * value;
ÏÂÃæÊDZȽÏÍêÕûµÄServer¶ËµÄÔ´´úÂë:
//---------------------------------------------------------------------------------
// CServerDoc.cpp
//-----------------------------------------------------------------------
Ïà¹ØÎĵµ£º
ÔÚLinuxÏÂд³ÌÐò£¬Óöµ½Ò»¸öº¯Êý²»ÖªµÀÔõôÓþ͵ÃÉÏÍøÈ¥²é£¬Ã»ÓÐÀàËÆMSDNÖ®ÀàµÄÈí¼þ£¬·³µÃºÜ¡£¿´µ½ÍøÉϺܶàÈ˶¼ËµÓÃmanºÜ·½±ã£¬Ö»ÒªmanÒ»ÏÂÄãÏëÁ˽âµÄº¯Êý¾ÍÐÐÁË£¬¿ÉÎÒÔÚmanÖ®ºóʲô¶¼µÃ²»µ½£¬±ÈÈç man printf£¬½á¹û¾ÍÊÇûÓÐÈë¿Ú
½ñÌìרÃÅÉÏÍøËÑÁËÏ£¬·¢ÏÖÔÀ´ÊÇÒòΪUbuntuĬÈÏûÓÐ×°manpages-dev£¬¶øº¯Êý¶¼ÔÚÕâ¸ö°üÀ°ÑÕ ......
C++/CÊÔÌâ
±¾ÊÔÌâ½öÓÃÓÚ¿¼²éC++/C³ÌÐòÔ±µÄ»ù±¾±à³Ì¼¼ÄÜ¡£ÄÚÈÝÏÞÓÚC++/C³£ÓÃÓï·¨£¬²»Éæ¼°Êý¾Ý½á¹¹¡¢Ëã·¨ÒÔ¼°Éî°ÂµÄÓï·¨¡£¿¼ÊԳɼ¨ÄÜ·´Ó³³ö¿¼ÉúµÄ±à³ÌÖÊÁ¿ÒÔ¼°¶ÔC++/CµÄÀí½â³Ì¶È£¬µ«²»ÄÜ·´Ó³¿¼ÉúµÄÖÇÁ¦ºÍÈí¼þ¿ª·¢ÄÜÁ¦¡£
±ÊÊÔʱ¼ä90·ÖÖÓ¡£Ç뿼ÉúÈÏÕæ´ðÌ⣬ÇÐÎð ......
×î½üÔÚcsdnµÄÂÛ̳ÉÏ·¢ÁËÕâÑùÒ»¸öÌû×ÓÈçÏÂ
int a=5;
a*=a/=a++;
ÎÒÔÚÒ»±¾¶þ¼¶cµÄÊéÉÏ¿´µ½µÄ´ð°¸ÊÇ2 ÓÉÓÚÎÒ¶Ô´ËÌâ²¢²»ÊÇÊ®·ÖÀí½â ËùÒÔÔÚÂÛ̳ÉÏ·¢±í ¿´ÓÐûÓÐÈËÄܰï׎âÊÍһϠȴûÓÐÏëµ½ÒýÀ´µÄ40¶àÂ¥µÄÒ»¸ö³¤Ìù ÒÔÖÁÓÚµ½×îºóÌÖÂÛµÄÄÚÈÝÔ¶Ô¶³¬¹ýµÄÌâÄ¿±¾Éí ÕæÊµ²»½â,ΪʲôÕâôÓÐÕùÒéµÄÌâÈ´ÄÃÀ´¿¼ÈË,Äѵ½¶¼Òª°´¶þ¼¶cµÄvc±àÒ ......
(±¾ÎÄÔ´×Ôhttp://www.weste.net/2006/2-20/13432127659.html )¡¡¡¡
Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔõÑùµÄ³Ì¶È£¬ÎÒÃÇÄÜÕæÕýдºÃÒ»¸östrcpyº¯ÊýÂð£¿ÎÒÃǶ¼¾õµÃ×Ô¼ºÄÜ£¬¿ÉÊÇÎÒÃÇд³öµÄstrcpyºÜ¿ÉÄÜÖ»ÄÜÄõ½10·ÖÖÐ ......
µÚÒ»Õ¸ÅÀÀ
CÊÇÒ»ÖÖ±àÒëÐ͵ÄÓïÑÔ
±àÒëÐÍ£º¾ÍÊǰÑcÓïÑÔ±àÒë³É¼ÆËã»úÄÜÔËÐеĻúÆ÷´úÂë
²»Í¬µÄ¼ÆËã»úϵͳÓÐן÷×ԵıàÒëÆ÷£¬À´°Ñc±àÒë³É¶ÔÓ¦µÄ»úÆ÷´úÂë
ÌØÐÔ£º´úÂë¸ßЧ£¬¿ÉÒÆÖ²£¬¹¦ÄÜÇ¿´óºÍÁé»î
ȱµã£º´úÂë¸ñʽ×ÔÓÉ£¨ÌرðÊÇÖ¸ÕëµÄʹÓã©
CÓïÑÔÔËÐÐµÄÆß¸ö²½Ö裺
1. ¶¨Ò ......