¼­¹ö¸¦ ¸¸µé¾î¼­ µ¹¸®´Ù º¸¸é Ŭ¶óÀÌ¾ðÆ® ÃøÀº ÀÌ¹Ì ²÷¾îÁ³´Âµ¥
¼­¹ö¿¡¼­´Â ¿¬°á ÇØÁ¦¸¦ ÀÎ½Ä ¸øÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¸é ³×Æ®¿öÅ© ¼±À» ³×Æ®¿öÅ© Ä«µå¿¡¼­ »°À» °æ¿ì¿Í °°Àº
Çö»óÀÌÁÒ.
ÇØ°áÃ¥À¸·Î ¼­¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°£¿¡ ÀÏÁ¤ ½Ã°£ °£°Ý¸¶´Ù Åë½ÅÀ»
ÇØ¼­ ÀÀ´äÀÌ ¾øÀ¸¸é ¿¬°áÀ» °­Á¦ÀûÀ¸·Î ²÷´Â ¹æ½ÄÀ» ÃëÇϰí Àִµ¥
¼ÒÄÏ ·¹º§¿¡¼­ À̸¦ ÀνÄÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾øÀ»±î¿ä?

°í¼ö´ÔµéÀÇ Á¶¾ð ºÎŹÇÕ´Ï´Ù. 
¾È³çÇϼ¼¿ä..

¾Æ¹öÁö¾ÆµÚ¸¦ ºô·Á¾²´Â Áß1 Àå¿ë¼®ÀÌ¶ó±¸ Çϴµ¥¿ä..

CSocket¸¦ »ç¿ëÇØ¼­, äÆÃ¼­¹ö¸¦ Á¦ÀÛÇØº¸´Âµ¥,,

´ÙÁßÀ¸·Î ¸¸µé±âÀü, CSocket»ç¿ë¿¡ ´É¼÷ÇØÁö±â À§Çؼ­, °£´ÜÈ÷ 1:1 ·Î Åë½ÅÀ»ÇÏ´Â

ÇÁ·Î±×·¥À» ¸¸µå´Âµ¥¿ä,,

À½..

¿ì¼±, ¼­¹ö¼ÒĹÀ» Server_Socket·Î Çϱ¸¿ä, Ŭ¶óÀÌ¾ðÆ®¸¦ Client_Socket,

ùÁ¢¼ÓÀÚ ¼ÒĹÀ» User_Socket·Î À̸§À» ÁÖ¾úÁÒ. 

¾Ïư, ÀÌ °ÍµéÀ».. ÄÚµùÇÏ¸é ´ÙÀ½°ú °°°ÚÁÒ..

CSocket Server_Socket;
CSocket Client_Socket;
CSocket User_Socket;

À̰͵éÀ» Á¦°¡ CChatView(ÇѸ¶µð·Î ºä¿¡´Ù°¡)¿¡´Ù°¡

ÇÔ¼ö¼±¾ðÇϴµ¥´Ù°¡ ¼±¾ðÀ» ÇØ³õ¾ÒÁÒ.

±×¸®°í, ½º·¹µå À̸§Àº..

¿ì¼±, ¼­¹ö½º·¹µåÀÇ À̸§Àº 
UINT Server_Thread(LPVOID iParam)

ÀÔ´Ï´Ù.
¼­¹ö½º·¹µå ½ÃÀÛ¹öưÀ» ´©¸£¸é ´ÙÀ½°ú°°Àº ·çƾÀÌ ½ÇÇàµÇÁÒ..

AfxBeginThread(Server_Thread,this);

Server_ThreadÀÇ Ã¹ÁÙÀÔ´Ï´Ù.

CChatView *Views=(CChatView *)iParam;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
¾Ïư,, CSocketº¯¼öµéÀ» ºä¿¡´Ù°¡ ¼±¾ð½ÃÄ×À»¶§,

½º·¡µå ³»¿¡¼­ CSocketº¯¼ö¸¦ »ç¿ëÇÏ·Á¸é, 
À§¿¡ ¹ÔÁÙÄ£ Views¿¡¼­ »ç¿ëÀ» ÇØ¾ß°ÙÁÒ..

±×·¯´Ï±î,,

Views->Server_Socket.Create(ä³Î¹øÈ£);
Views->Server_Socket.Listen();
Views->Server_Socket.Accept(´Ù¸¥¼ÒĹ)

ÀÌ·±½ÄÀ¸·Î Ç×»ó ¾Õ¿¡´Ù°¡ Views¸¦ ºÙ¿©¼­ »ç¿ëÇϰÙÁÒ..

±Ùµ¥, Á¤¸»¹®Á¦´Â ÀÌ·¸°ÔÇØ¼­ ½º·¹µå¸¦ ±â³É °­Á¦·Î Á¾·á½Ã۸é,

Á¾·áµÇ°í, À©µµ¿ì°¡ »ç¶óÁø µÚ, ·±Å¸ÀÓ¿¡·¯°¡ ³­´Ù´Â Á¡ÀÔ´Ï´Ù.

±×·¡¼­, Çѵ¿¾È À̹®Á¦¿¡ ´ëÇØ¼­, »ý°¢À» ÇßÁÒ. 
±×·¯´Ù°¡ °á±¹, ½º·¡µå³»¿¡¼­, ÀÌ ¼ÒŵéÀ» »ý¼ºÇϰí

Á¾·áÇØºÃ´õ´À ±¦Âú´õ¶ó±¸¿ä..

·±Å¸ÀÓ ¿¡·¯°¡ ¾È³ª°í..

±×·±µ¥ ¹®Á¦´Â ½º·¡µå³»ºÎ¿¡¼­ CSocketº¯¼öµéÀ» »ç¿ë°¡´ÉÇÒÁö ¸ô¶óµµ,

´Ù¸¥½º·¹µå³ª ¸ÞÀÎ ¿¡¼­´Â ±× º¯¼ö¸¦ »ç¿ë¸øÇÏ´õ¶ó±¸¿ä..

±×·¡¼­, ÀÌ µÎ°¡Áö¹®Á¦¸¦ ´Ù °¡¸£ÃÄÁÖ¼ÌÀ¸¸é.. ÇÕ´Ï´Ù.

´Ù½ÃÁ¤¸®ÇÏÀÚ¸é, ºä¿¡´Ù°¡ CSocket¼±¾ð, ½º·¹µå¿¡¼­ Á¢¼Ó, ´ë±â, Å©·¹ÀÌÆ® µéÀ»
ó¸®ÇÒ°æ¿ì À©µµ¿ìÁ¾·á½Ã ¹ß»ýÇÏ´Â ·±Å¸ÀÓ¿À·ù ÇØ°á¹ý. 

µÎ¹øÂ°´Â ½º·¹µå³»¿¡¼­ CSocket¼±¾ð, ¿ÜºÎ³ª ´Ù¸¥½º·¹µå¿¡¼­ ±×¼ÒĹÀ» »ç¿ëÇÏ´Â
¹æ¹ýÀ»... ²ÀÁ» °¡¸£ÃÄÁÖ¼ÌÀ¸¸é ÇÕ´Ï´Ù..

±×·³..

Àü À̸¸..

²ÀÁ» ºÎʵ右´Ï´Ù.
¾È³çÇϼ¼¿©

º´±¹´Ô²²¼­ ¿À·ù°¡ ³ª½Å´Ù°í Çϼ̴µ¥.. ´ç¿¬ÇÑ °Ì´Ï´Ù.
´Ù¸¸ ¾²·¹µå¸¦ Á¾·á½ÃŲ´Ù¸é ¹®Á¦°¡ »ý±æ ¼ÒÁö°¡ ³ôÁö¿ä.
Áï, µ¿±âÈ­ ¹®Á¦¸¦ »ý°¢ÇØ¾ß ÇÕ´Ï´Ù.
¸ÞÀÎ ¾îÇø®ÄÉÀÌ¼Ç ¾²·¹µå¿Í ÀÛ¾÷ ¾²·¹µå°¡ º°µµ·Î µ¶¸³ÀûÀÎ ÀÛ¾÷À» ÇÑ´Ù¸é¾ß
µ¿±âÈ­¿¡ ´Ù¸£´Â ¹®Á¦°¡ Àû°ÚÁö¸¸.
¼ÒÄÏ¿¡ °üÇÑ ÀÏÀ» ¾²·¹µå·Î ³ª´²¼­ ÇÏ´Â °ÍÀº ¾ÈÁ¤ÀûÀÌÁö ¸øÇÕ´Ï´Ù.
(ms¿¡¼­´Â ¾²Áö ¸»¶ó°í ÇÕ´Ï´Ù..^^)

°á±¹ ÇÑ ¾²·¹µå ³»¿¡¼­ ¼ÒÄÏ ÀÛ¾÷À» ó¸®ÇÏ´Â ¹æ¹ýÀ» ½á¾ß ÇÕ´Ï´Ù.
(´Ù¸¥ ¹æ¹ýÀ¸·Îµµ ¾ÈÁ¤ÀûÀÎÁö ¸ð¸£°Ú±º¿©)
±×·¯´Ï, ¸ÖƼ ¾²·¹µå ÀÛ¾÷Àº Èûµì´Ï´Ù..¤Ì¤Ì

Àú°°Àº °æ¿ìÅ×½ºÆ®·Î ¸¸µé¾îº» äÆÃ Ŭ¶óÀÌ¾ðÆ®¸¦ ¸ÖƼ ¾²·¹µå¸¦ ½è´Âµ¥. 
Àß µ¹´õ±º¿ä.
±×·¯³ª, ÀÌ ¿¹Á¦¸¦ ±â´ÉÈ®ÀåÀ» ÇÏ·Á°í ÇÏ´Ï±î ¹«Áö ¾î·Æ´õ±º¿ä..¤Ì¤Ì
À½.. ÀúÀÇ °æ¿ì´Â ¼ÒÄÏ Å¬·¡½º¸¦ api·Î ¸¸µé¾ú±â ¶§¹®¿¡..
mfcÀÇ ¼ÒÄÏ Å¬·¡½º°¡ ¸ÖƼ ½º·¹µå¿¡ ¾ÈÀüÇÑÁö Àå´ãÇÒ ¼ö ¾ø½À´Ï´Ù.

°á±¹ ½º·¹µå »ç¿ëÀ» ÇÇÇϽðí¿ä..
¸¸¾à ¾²½Ã°Ú´Ù¸é.. api·Î ÀÛ¼ºÇϼż­ thread_safeÇÑ Å¬·¡½º¸¦ Á¦ÀÛÇϽñ⠹ٶø´Ï´Ù.
¾È³çÇϼ¼¿ä? ÀÌÈ«±âÀÔ´Ï´Ù.

ÂÁ.. À¯´Ð½º¿¡¼­ ¼ÒÄÏÇÁ·Î±×·¡¹ÖÀ» Çϰí ÀÖ½À´Ï´Ù¸¸..

¾²·¹µå¸¦ ¾²¸é¼­ ¼º´ÉÀ» ³ôÀÌ´Â ¹æ¹ýÀº ¾²·¹µåÇ®À» »ç¿ëÇÏ´Â ¹æ¹ýÀ̶ó°í
»ý°¢ÇÕ´Ï´Ù.

¼Û¼ö½ÅÃø¿¡ ÆÐŶó¸®ÇÏ´Â ÀÔÃâ·Â Å¥¸¦ °¢°¢ µÎ°í,

ÀԷ½ÿ¡´Â readÀ̺¥Æ®¸¦ ¹Þ¾Æ¼­ ¼ÒÄÏÀ» ÀÔ·ÂÃø¼ÒÄÏÅ¥¿¡ ³Ö°í, ¾²·¹µåÇ®¿¡¼­

°æÀïÇÏµí°¡Á®°¡¼­ read¸¦ ÇÏ´Â ¹æ¹ýÀ» ¾²°í,

Ãâ·Â½Ã¿¡´Â Ãâ·ÂÅ¥¿¡ ó¸®ÇÑ ÆÐŶÀ» Áý¾î³ÖÀ¸¸é write¸¦ ÇØÁÖ´Â Ãâ·Â ¾²·¹µåÇ®
¿¡¼­ °æÀïÇÏµí °¡Á®°¡¸é¼­ ó¸®ÇØÁÖ´Â ¹æ¹ýÀÌ ÁÁÀº ¹æ¹ýÀϵíÇÕ´Ï´Ù.

Æ©´×Àº ¹°·Ð ¾²·¹µåÇ®ÀÇ ¾²·¹µå °³¼ö·Î ÇÏ¸é µÇ°ÚÁö¿ä.


´Ù¸¸ ¾²·¹µå °ü¸®³ª ¸Þ¸ð¸®Ä§¹ü¿¡ ´ëÇØ¼­´Â ó¸®ÇϱⰡ ¸¸¸¸Âú´Ù´Â °ÍÀÌ

ÇÁ·Î±×·¡¹Ö½ÃÀÇ ³­Á¦¶ó º¼¼öÀÖ°Ú½À´Ï´Ù. 
Çѱ¹°ú ¹Ì±¹¿¡ ¼­¹ö¸¦ µÎ°í,
µÎ ¼­¹ö¿¡ ISP·ÎºÎÅÍ ¿Â ¼±À» Çϳª¾¿ ¹°·Á¼­
ȸ¼±À» ¸ðµÎ ¼­¹ö°¡ »ç¿ëÇÏ°Ô µÈ´Ù¸é..
¼­¹ö°£ Æò±Õ Àü¼Û¼Óµµ´Â ¾ó¸¶Á¤µµ°¡ ³ª¿Ã±î¿ä..?
Àü¼Û ÇΟÀÓ 700ms ¿¡ ÃÊ´ç 15kb¸¦ ¿¹»óÇϰí ÀÖ½À´Ï´Ù¸¸..
Ȥ½Ã Å×½ºÆ® ÇØº¸¼Ì°Å³ª °ü·ÃµÈ°Íµé ¾Æ½Ã´ÂºÐ µµ¿ò ºÎŹ µå¸³´Ï´Ù.

- Testors 
Àú±â¿ä Á¦°¡ ¼­¹ö¸¦ ´Ù ¸¸µé¾ú°Åµç¿ä.
±×·±µ¥ Űº¸µå äũ ÇÔ¼ö°¡ ¾ø¾î¼­ ¤Ð_¤Ð
°³ÇǸ¦ º¸±äÇßÁö¸¸. (µµ½º·Î ¸¸µé¾ú°Åµç¿ä)
À©µµ·Î ¸¸µé¸é¼­ ½Ç·ÂÀÌ ºÎ½ ´Âµí ½Í±º¿ä ÈÄÈ÷È÷È÷
±×·±µ¥¿ä.
Á¦°¡ ¾Ë±â·Î.. ¼­¹ö¿¡ Á¢¼ÓÇϴ°Ç.. Àڱ⠼­¹ö¿¡ Á¢¼ÓÀÌ
°¡´ÉÇÏ´Ù°í ÇÏ´õ±º¿ä ¹°·Ð ±×°É ¾²°í ÀÖÁö¸¸¿ä.
ÇÏÁö¸¸ ±×°É·Î´Â ŽºÆ® ÇÒ¼ö°¡ ¾øÁÒ.
±×·¯´Ï±î ¸»Àä.
Àڽſ¡ ¼­¹ö¸¦ ³²ÀÌ µé¾î¿À°Ô(ÀúÈñ ÁýÀ̾ƴÑ)ÇÏ´Â ¹æ¹ýÀº
¾ø³ª¿ä?
Àú´Â µÎ·ç³ÝÀÔ´Ï´Ù.
»¡¸® ¸¸µé¾î º¸°í ½ÍÀºµ¥.. °É¸®´Â°Ô Á» ¸¹±º¿ä..
´©°¡ ¾Ë¾Ò°Ú½À´Ï±î ¤Ð_¤Ð ´Ù ¸¸µé¾î ³õ°í ÄÄÆÄÀÏ ½Ã۴µ¥
kbhit()°¡ ¾ø´Ù´Ï... ±×·¡¼­ ºÎ·ªºÎ·ª bioskey(1)·Î ´ëÄ¡Çß´õ´Ï. 
¾î¶ø¼Å? À̰ŠÇÔ¼ö°¡ ¾ø±º^^
Àú°°Àº lccÀ¯Àú°¡ º°·Î ¾ø¾î¼±°¡¿ä? Áú¹®¶õ¿¡ Áú¹®Çß´õ´Ï.
¹¬»ìÇÏ³×¿ä ¤Ð_¤Ð
¼­¹ö ¿î¿µ¹æ¹ý°ú.. µý°÷¿¡¼­ ¿ì¸®Áý¿¡ Á¢¼ÓÇÏ´Â ¹æ¹ýÀ» Á»
°¡¸£ÃÄ ÁÖ¼¼¿ä.
±×¸®°í Àú¿¡°Ô ´äº¯Áֽźпä. Á¤¸» °í¸¿½À´Ï´Ù. Á¤¸»
gma°¡ ÁÁ¾Æ Áý´Ï´Ù.^^
±×·³ ºüÀÌ·ç~~ 
¾È³çÇϼ¼¿ä?
ÀÏ´Ü ¼­¹ö´Â ÄÄÇ»ÅÍ¿¡¼­ ½ÇÇàÀ» ½ÃÄÑ¾ß ÇÕ´Ï´Ù..
±×·¯°í ³ª¼­
ÀÚ½ÅÀÇ IPÁÖ¼Ò¸¦ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù
¾Æ´Â ¹ýÀº winipcfgÇϸé ÀÚ½ÅÀÇ ip¸¦ ¾ËÁÒ
±×·³ Ŭ¶óÀÌ¾ðÆ®¿¡¼­ Á¢¼ÓÇÏ¸é µË´Ï´Ù
ÇÏÁö¸¸ ÄÄ ÇÑ´ë °®±¸µµ ÇÒ¼ö ÀÖ½À´Ï´Ù

ÀÚ½ÅÀÇ ÄÄÀ» °¡¸®Å°´Â ip´Â
127.0.0.1ÀÔ´Ï´Ù
±×·³~ 
¾È³çÇϼ¼¿ä..
Ç×»ó À̰÷ °Ô½ÃÆÇ¿¡¼­ ¸¹Àº µµ¿òÀ» ¹Þ´Â °³Á¦µ¿ ȸ¿øÀÔ´Ï´Ù.
°³ÀÎÀûÀ¸·Î ¿Â¶óÀÎ ¸Ó±× °ÔÀÓ¿¡ ¸¹Àº °ü½ÉÀÌ ÀÖ°í ÁÁ¾ÆÇÏ´Ù
º¸´Ï À̰÷¿¡ ÀÚÁÖ µé¸®°Ô µÇ¾ú½À´Ï´Ù.
À̹ø¿¡ ÄÄÇ»ÅͰ¡ 2´ë°¡ »ý±â°Ô µÇ¾î¼­ Çϳª¿¡´Ù´Â linux ¸¦
±ò°í Á¶±×¸¶ÇÑ ³×Æ®¿÷À» ±¸¼ºÇÏ¿´½À´Ï´Ù.
±×¸®°í ADSLÀ» ½ÅûÇÏ¿´´õ´Ï °íÁ¤ IP µµ Çϳª ÁÖ´õ±º¿ä.
Ç×»ó ¾ÆÁÖ °£´ÜÇÏ°Ô¶óµµ ¿Â¶óÀÎ ¸Ó±×¸¦ Çѹø ±¸ÇöÇØº¸°í ½Í
´Ù´Â »ý°¢ÀÌ °£ÀýÇ߱⶧¹®¿¡ ½Ã½ºÅÛÀÌ ±¸ÃàµÊ°ú µ¿½Ã¿¡ ÇØº¸
·Á°í Çߴµ¥ ³Ê¹«³ªµµ ¶³¾îÁö´Â ½Ç·Â ¶§¹®¿¡ ÀÌ·¸°Ô µµ¿òÀ»
¿ÜĨ´Ï´Ù...¸¹ÀÌ µµ¿ÍÁÖ¼¼¿ä...

1. fork() Àΰ¡ ¾²·¹µåÀΰ¡...

¼­¹ö¿¡¼­ Ŭ¶óÀÌ¾ðÆ®¸¦ ´ÙÁßÀ¸·Î ¹Þ±âÀ§Çؼ­´Â ´ç¿¬È÷ 
fork() ¸¦ »ç¿ëÇØ¾ß µÇ´Â°ÍÀ¸·Î ¾Ë°í ÀÖ¾ú´Âµ¥ °Ô½ÃÆÇÀ»
Àдٺ¸´Ï ¸ÖƼ ¾²·¹µå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù°í º¸¾Ò½À´Ï´Ù.
¾î¶²ºÐÀº fork ¸¦ »ç¿ëÇÏ¸é ½Ã½ºÅÛ ºÎÈ­°¡ Å©´Ù°íµµ ¸»¾¸ÇÏ
½Ã´Âµ¥ ÀÌ µÎ°¡Áö ¹æ¹ý¹Û¿¡´Â ¾ø½À´Ï±î?
±×¸®°í Â÷ÀÌÁ¡Àº ¹¹°¡ ÀÖ´ÂÁö ¾Ë°í ½Í½À´Ï´Ù.

2. PC ¿Í NPCÀÇ ¿òÁ÷ÀÓ Ã³¸®´Â ¾²·¹µå·Î? ..¼³¸¶ Timer?

¸Ó±×°×À» ÇÏ´Ùº¸¸é ÀÚ½ÅÀÇ Ä³¸¯ÅÍ ¸»±¸ ´Ù¸¥À¯ÀúÀÇ Ä³¸¯Å͵éÀÌ
ÀÚ¿¬½º·´°Ô ¿òÁ÷ÀÔ´Ï´Ù...À̰ÍÀ» ±¸ÇöÇÏ·Á¸é ¾²·¹µå¸¦ »ç¿ëÇØ
¾ß µÇ´Â°ÍÀԴϱî? .. ¾Æ´Ï¸é ÇöÀç Á¢¼ÓÇØ ÀÖ´Â ¸ðµç À¯Àú¸¸Å­
Timer ·Î »±»±ÀÌ(?)¸¦ µ¹·Á¾ß Çϴ°ÍÀԴϱî?(Client¿¡¼­)
¾Æ´Ï¸é ÆÐŶ¿¡ ¿À´ÂÁ¤º¸´ë·Î ±×³É ½ºÇÁ¶óÀÌÆ® 󸮸¸ Çϴ°̴ϱî?

ÀÌ·¸°Ô µÎ ºÎºÐÀÌ ¹«Ã´ ±Ã±ÀÇÕ´Ï´Ù.. 
fork() ÄÝÀÌ ºÎÇϰ¡ °É¸®´Â ÀÌÀ¯´Â °£´ÜÇÕ´Ï´Ù.

¿©·¯ Ã¥¿¡ ³ª¿ÍÀÖµíÀÌ fork() ´Â ºÎ¸ðÀÇ °ÅÀÇ ¸ðµç Á¤º¸¸¦ ¹«½ÄÇϰÔ
º¹»çÇØ¼­ ÇÁ·Î¼¼½º¸¦ Çϳª ´õ ¸¸µì´Ï´Ù.

¶ÇÇÑ fork() ÄÝÀº ÇÁ·Î¼¼½º °£ÀÇ Åë½ÅÀ» ó¸®Çϱ⿡ ¿ëÀÌÇÏÁö ¸øÇϹǷÎ
°ÔÀÓ¼­¹ö¿Í °°ÀÌ Å¬¶óÀÌ¾ðÆ®¿Í Å¬¶óÀÌ¾ðÆ®°£ÀÇ Åë½ÅÀÌ ¸Å¿ì ÀæÀº ±¸Á¶¿¡´Â
ÀûÇÕÇÏÁö ¾Ê´Ù°í ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù.

¸¸¾à ºÎ¸ð°¡ 640kb Â¥¸®¿´´Ù¸é ±×¸®°í ÀÚ½ÄÀ» Á¢¼ÓÇϳªÇϳª¸¶´Ù ¾©Ç³¾©Ç³
³º´Â ´ë´ÜÇÑ ºÎ¸ð¶ó¸é 640kb * Á¢¼ÓÀÚ¼ö = ¸Þ¸ð¸®»ç¿ë·® ÀÌ µÇ°ÚÁö¿ä.

±×·¡¼­ ½Ã½ºÅÛ ºÎÇϰ¡ ½ÉÇÕ´Ï´Ù. 
¾È³çÇϼ¼¿ä...
¿À·§¸¸¿¡ ¿Ô´õ´Ï ¹Ý°¡¿î(?) ±ÛÀÌ ÀÖ±º¿ä...
(Áö±ÝÀº ¾Æ´ÏÁö¸¸ ÇÑ ¶§´Â MUD Àü°ø(?) À̾ú±â ¶«½Ã~ ^_^)

¿ì¼±, 1¹ø...
°á·ÐºÎÅÍ ¸»¾¸ µå¸®¸é ¿äÁòÀº ¾²·¹µå¸¦ »ç¿ëÇÏ´Â Ãß¼¼ÀÔ´Ï´Ù.
¹°·Ð, OS°¡ ¹«¾ùÀÎÁö, Àüü ½Ã½ºÅÛ ±¸Á¶¸¦
¾î¶² ÇüÅ·Π°¡Áö°í °¥ °ÍÀÎÁö¿¡ µû¶ó¼­ ´Ù¸£±ä ÇÕ´Ï´Ù.

º¸Åë fork()´Â ±ÇÇÏÁö ¾Ê½À´Ï´Ù.
¹Ø¿¡ ´Ù¸¥ ºÐµµ ´äº¯ÇϼÌÁö¸¸ overhead°¡ ³Ê¹« Å®´Ï´Ù.
¾²·¹µå¸¦ ¾²±â ¾î·Á¿î ±¸Á¶°Å³ª ½Ã½ºÅÛ¿¡¼­ µÞ¹ÞħÀÌ Àß ¾ÈµÇ¸é...
clone()À» »ç¿ëÇØµµ µË´Ï´Ù.
clone()´Â ¸Þ¸ð¸® ¿µ¿ªÀº ±×´ë·Î »ç¿ëÇϸ鼭 ÅØ½ºÆ® ¿µ¿ª¸¸ Çϳª ´õ º¹»çÇØ¼­
ÇÁ·Î¼¼½º ´ÜÀ§¸¦ »ý¼º½ÃÄÑ ÁÝ´Ï´Ù.
»õ·Î »ý±ä °ÍÀε¥... ¾ÆÁ÷ Àúµµ Å« ½Ã½ºÅÛ¿¡´Â Àû¿ëÇØº¸Áö ¾Ê¾Æ¼­
¾ÈÁ¤¼ºÀ̳ª ¼º´É¿¡ ´ëÇØ¼­´Â È®½ÅÇÏÁö ¸øÇϰڽÀ´Ï´Ù.

2¹ø...
ÀÌ ºÎºÐÀº ¾ÕÀÇ 1¹ø ±¸Á¶¸¦ ¾î¶»°Ô ÇÏ´À³Ä¿¡ µû¶ó¼­ ´Þ¶óÁý´Ï´Ù.
Àüü¸¦ one process ±¸Á¶·Î ÇÒ °æ¿ì¿¡´Â »±»±À̸¦ µ¹¸®ÁÒ...
ÀÌ·¯ÇÑ ÇüÅ´ circle mud¿¡¼­ ã¾Æ º¸½Ç ¼ö ÀÖ½À´Ï´Ù.
(ftp.circlemud.org ¿¡ °¡½Ã¸é source°¡ ÀÖ½À´Ï´Ù.)

¾²·¹µå·Î Çϸé... ¾Æ¹«·¡µµ µ¶¸³ ¾²·¹µå·Î µ¹¸®´Â °ÍÀÌ À¯¸®ÇϰÚÁÒ...
¹°·Ð µ¶¸³ÀûÀÎ process¸¦ ¶ç¿ï ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ µÎ°¡Áö ¹æ¹ýÀ» »ç¿ëÇÒ ¶§¿¡´Â ´Ù¸¥ ¾²·¹µå, ¶Ç´Â process¿Í
µ¿±âÈ­¸¦ Àß ÇØ¾ß°ÚÁÒ... 
¸Óµå´Â ¸¸µå´Â »ç¶÷¸¶´Ù ±× ±¸Á¶°¡ ´Ù¸¨´Ï´Ù.
¾î¶² °ÍÀÌ Á¤¼®À̶ó´Â °Íµµ ¾ø½À´Ï´Ù.
±âÁ¸¿¡ ³ª¿Í ÀÖ´Â ¼Ò½º¸¦ ÂüÁ¶ÇϽô °Íµµ ÁÁÀ¸¸®¶ó »ý°¢ÇÕ´Ï´Ù.
¸®´ª½º µ¿È£È¸³ª ¸Óµå µ¿È£È¸ °¡½Ã¸é ¸î °¡Áö ¼Ò½º°¡ ÀÖ°í,
ÀÎÅͳݿ¡¼­ ¿©·¯°¡Áö ¼Ò½º¸¦ ±¸ÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

´äº¯ÀÌ µÇ¾ú±æ ¹Ù¶ó³×¿ä... ^_^ 
¾È³çÇϼ¼¿ä.

Client°¡ µé¾î¿ÔÀ» ¶§¸¶´Ù User thread¸¦ »ý¼ºÇØÁָ鼭 User°¡ ¹æÀ» ¸¸µé±â¸¦
¼±ÅÃÇÏ¸é ¼­¹ö ³»¿¡¼­ Room thread¸¦ »ý¼ºÇÑ ÈÄ ÀÎÀÚ·Î UserµéÀÇ Á¤º¸(¸®½ºÆ®)
¸¦ ³Ñ°ÜÁÖ·Á ÇÕ´Ï´Ù.

±×·±µ¥ ¹®Á¦´Â...Room threadÀÇ ±â´ÉÀÌ ClientµéÀÇ ¸Þ½ÃÁö¸¦ ÁÖ°í ¹Þ°í
±Ó¼Ó¸», ÃÊ´ëµîÀÇ ±â´ÉÀε¥..ÀÌ ¸Þ½ÃÁö¸¦ ó¸®Çϱâ À§Çؼ­ ÇöÀç ¹«ÇÑ·çÇÁ¸¦
µ¹°í Àִٴ°̴ϴÙ. ±×·¡¼­ Áß°£¿¡ Sleep(500)Âë ÁÖ´Ï ºÎÇÏ´Â ¸¹ÀÌ ¾ø¾îÁ³´Âµ¥
´ë½Å ¹ÝÀÀÀÌ ´À¸®±¸¿ä. -.-;;

Èì..±×·¡¼­ ´Ù¸¥ ÇØ°áÃ¥À¸·Î ¾Æ¿¹ room thread¸¦ ¸¸µéÁö ¾Ê°í ¹«½ÄÇϰÔ
user¸¶´Ù roomÀÇ ±â´ÉÀ» °¡Áö°í ÀÖ´Â °ÍÀ¸·Î Â¥±ä Çߴµ¥..¿ª½Ã ÂóÂóÇϳ׿ä.

±×·³ ÀÌ°É ¾î¶»°Ô ÇØ°áÇÒ ¼ö ÀÖ´ÂÁö °í¼ö´ÔµéÀÇ ´äº¯ ºÎʵ右´Ï´Ù. 
Áö±Ý ¾²½Ã°íÀÖ´Â ¹æ¹ýÀº ¾î¶»°Ô º¸¸é ¸ÖƼÅ×½ºÅ·À» ÀÌ¿ëÇÑ Æú¸µÀ̶ó°í º¸ÀÌ´Â
±º´¢..

Àúµµ ÀÌ·± ¹æ¹ýÀ» óÀ½¿¡ ½áºÃ´Âµ¥.. ³ªÁß¿¡ ¹Ù²Ù¾ú½À´Ï´Ù.
Àú´Â winsock 2.0À» »ç¿ëÇØ¼­ ÇØ°áÇϴµ¥..
»ó´ë¹æÀ¸·ÎºÎÅÍ ¸Þ¼¼½Ã°¡¿À°Å³ª Á¢¼ÓÀÌ¿À¸é À̺¥Æ®¸¦ ¹ß»ý½Ãų¼öÀÖ½À´Ï´Ù
À̶§ ±îÁö °¢°¢ÀÇ ½º·¹µå´Â waitÇÏ´Ù°¡ (°ÅÀÇ ºÎÇϸ¦ ¾È¸Ô´Â±º´¢..)
ó¸®ÇÒ³»¿ëÀÌ ¿À¸é ±×¶§¸¶´Ù ¾²·¹µå¸¦ °¡µ¿½Ãŵ´Ï´Ù..
±×·¯¸é ½ÇÁ¦ ÇÊ¿äÇÒ¶§¸¸ ½º·¹µå°¡ ¿òÁ÷À̹ǷΠºÎÇϸ¦ ´ú¸ÔÀ»¼öÀÖÁÒ..

»ç½Ç Áö±Ý Á¦°¡ ¾²´Â ¹æ¹ýÀº üÆÃ¿¡´Â ¾È¸ÂÀ»Áö ¸ð¸£Áö¸¸..
(Àú´Â À̹æ¹ýÀ» ¾×¼Ç °ÔÀÓ¿¡¼­ »ç¿ëÇÕ´Ï´Ù)
TX,RX,ACCEPT ÀÇ ¼¼°¡ÁöÀÇ ½º·¹µå¸¦ ¸¸µé°í °¢°¢ÀÇ À¯Àú¿¡°Ô ¼ÒÄÏÀ»
»ý¼ºÇÕ´Ï´Ù..
±×¸®°í °¢°¢ÀÇ ¼ÒÄÏ¿¡¼­ ¾î¶²ÀÏÀÌ ÀϾ¶§¸¸ °ü½ÉÀ» µÐ´Ù´Â °ÅÁÒ.
±×Àü±îÁö´Â waitÀÔ´Ï´Ù..
ÀÌ·± ¹æ¹ýÀ¸·Î ÇÑÇÁ·Î±×·¥¿¡¼­ ¾²·¹µå¸¦ 10°³ÀÌ»ó (¼ÒÄÏ,±âŸ ¾²·¹µå)
»ç¿ëÇϴµ¥µµ ±×·±µ¥·Î ¸¸Á·ÇÕ´Ï´Ù.

´Ù¸¥ºÐµéµµ ÀÌ·± ¹æ¹ýÀ¸·Î »ç¿ëÇÏÁö ¾Ê³ª ½Í½À´Ï´Ù..
´Ù¸¥ÀǰßÀÖÀ¸½Ã¸é Á¶¾ðºÎŹÇÕ´Ï´Ù..(Ãʺ¸¶ó..--;)
±×·³

ÀÏ´Ü À©µµ¿ìÁî Ç÷§ÆûÀ» ÀÌ¿ëÇÏ´Â °æ¿ì·Î ¸»¾¸µå¸³´Ï´Ù.
À©¼ÓÀÇ ºñµ¿±â ¼ÒÄÏÀ» ¾²¸é °£´ÜÇÏ°Ô ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿ì¼± Á¢¼ÓÀ» ¹Þ´Â ºÎºÐÀÔ´Ï´Ù.

WSAAsyncSelect(m_socketBase,g_hServerMessageWindow,WM_SOCKET_EVENT,FD_ACCEPT);

ù¹øÂ° ÀÎÀÚ´Â ¸®½¼Çϰí ÀÖ´Â ¼ÒÄÏÀÔ´Ï´Ù.µÎ¹øÂ°´Â ¸Þ½ÃÁö¸¦ ¹ÞÀ» À©µµ¿ì°í
±× ´ÙÀ½Àº ¼ÒÄÏ¿¡¼­ À̺¥Æ®°¡ ¹ß»ýÇßÀ» °æ¿ì ¹ß»ý½Ãų ¸Þ½ÃÁö, ±× ´ÙÀ½ FD_ACCEPT
´Â ¾ï¼ÁÆ® ¸Þ½ÃÁö°¡ »ý±ä °æ¿ìÀÔ´Ï´Ù.
Áï À§ ¶óÀο¡¼± Á¢¼Ó ¿äûÀÌ ÀÖÀ» °æ¿ì(FD_ACCEPT) WM_SOCKET_EVENT¸Þ½ÃÁö(À̰Ç
Á¦°¡ ÀÓÀÇ·Î Á¤ÀÇÇÑ °ÍÀÔ´Ï´Ù.)¸¦ g_hServerMessageWindow¸¦ ÇÚµé·Î ÇÏ´Â À©µµ¿ì
·Î º¸³À´Ï´Ù.
±×·³ ±× À©µµ¿ìÀÇ ÇÁ·Î½ÃÁ®¿¡ WM_SOCKET_EVENT°¡ ³¯¾Æ¿À°í wparam¿¡´Â ¸Þ½ÃÁö
°¡ ¹ß»ýÇÑ ¼ÒÄÏ ¹øÈ£°¡ µé¾î¿É´Ï´Ù. 
lparam¿¡´Â ¾î¶² ¸Þ½ÃÁöÀÎÁö..fd_accept³ª fd_readµîÀÌ µé¾î¿ÀÁÒ.
ÀÌ °æ¿ì fd_accept°¡ µé¾î¿À¸é accept¸¦ ÇØÁÖ¸é µË´Ï´Ù.

¾ï¼ÁÆ®ÇÒ¶§µµ
csock = accept(m_socketBase, (struct sockaddr *)&caddr, &caddr_len);
WSAAsyncSelect(csock,g_hServerMessageWindow,WM_SOCKET_EVENT,FD_ACCEPT
| FD_CONNECT | FD_READ | FD_WRITE | FD_CLOSE);

ÀÌ·¸°Ô ÇØÁÖ¸é Á¢¼ÓÀÌ ÀÌ·ç¾îÁø ¼ÒÄÏÀ» ºñµ¿±â·Î µ¹¸³´Ï´Ù.
ÇöÀç Á¢¼ÓÀ» ¿äûÇÑ Å¬¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¹ß»ýÇÑ ¸Þ½ÃÁö´Â g_hServerMessageWindow
·Î ³¯¾Æ°¡°í fd_aceept, fd_connect , fd_read, fd_write, fd_close°¡ ¹ß»ýÇß
À» °æ¿ì¸¸ wm_socket_event¸¦ ¹ß»ý½Ãŵ´Ï´Ù.

ÀÏÀÏÈ÷ ¼ÒÄϸ¶´Ù ¸Þ½ÃÁö¸¦ üũÇÒ Çʿ䰡 ¾øÀ¸´Ï ÆíÇÏ°í ¶Ç pc¿¡ ºÎÇϸ¦
°ÅÀÇ ÁÖÁö ¾Ê½À´Ï´Ù. 
Á¦ °æ¿ì´Â ¸ðµç ¼ÒÄÏÀº ºñµ¿±â ¼ÒÄÏÀ¸·Î ¾²°í ÀÖ°í ÀÚü ¸®½Ãºê,»÷µå Å¥¶§¹®
¿¡ ·çÇÁ¸¦ »ç¿ëÇϰí Àִµ¥ ·çÇÁ¾È¿¡ sleep(10)À» ³Ö¾î¼­ 10¹Ð¸®¼¼ÄÁµå¾¿
½¬°Ô Çϰí ÀÖ½À´Ï´Ù.ÀÏ´ÜÀº ³õÄ¡´Â ¸Þ½ÃÁö ¾øÀÌ Àß µ¹¾Æ°¡°í Ŭ¶óÀ̾ðÆ®,
¼­¹ö ¸ðµÎ °°Àº ¼Ò½º¸¦ ¾²´Âµ¥ 98¿¡¼­ Ŭ¶óÀ̾ðÆ®,¼­¹ö µ¿½Ã¿¡ ¶Ù¿ö³õ°í
¸Þ½ÃÁö¸¦ ¸Å ·çÇÁ¸¶´Ù º¸³»´Â Å×½ºÆ®¸¦ ÇÒ¶§ cpuÁ¡À¯À²Àº 10%Á¤µµÀÔ´Ï´Ù.

µµ¿òÀÌ µÇ¼Ì±æ 
ÀÏ´Ü.. 98¿¡¼­´Â thread¶ç¿ì¸é.. °ÅÀÇ cpu 100%±îÁö ±âº»À¸·Î ¿Ã¶ó°¡´õ±º¿ä..

°°Àº ÄÚµå·Î NT¿¡¼­ ÇÏ¸é ºÎµå·´°Ô µ¹¾Æ°¡ÁÒ..

acesaga¶ó´Â Àü·«½Ã¹ÄÀÇ ³×Æ®¿÷À» ¸Ã°í Àִµ¥..

±×³É º°»ý°¢¾øÀÌ polling thread µ×´Ù°¡.. 98¿¡¼­ ¾îÀ̾ø°Ô ´À·ÁÁö´Â Çö»óÀÌ

ÀϾ¼­.. ÇÑÂüÀ» µÚÁ®º¸°í ¾Ë¾Ò½À´Ï´Ù.

¹¹.. ¹Ø¿¡ºÐµéÀÌ ¸»¾¸ÇϽŰÅó·³ select·Î Æú¸µÇϴ°͵µ ±¦ÂúÀº ¹æ¹ýÀ̰í¿ä..

thread¿¡ Event¸¦ Á༭ Thread¸¦ µ¹¸®´Â°Íµµ ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù.

WaitForSingleObject ³ª WaitForMultipleObjects µîÀ¸·Î À̺¥Æ®°¡ ¾øÀ»¶§´Â 
¾²·¡µå°¡ ÀÚ°íÀÖ´Ù°¡.. À̺¥Æ® ¹ß»ý½Ã¸¸ ¿òÁ÷À̸é.. ¿ÀÈ÷·Á selectº¸´Ù

ºÎÇÏ´Â ´ú ¸ÔÁÒ..

±¸Á¶°¡ ¿©ÀÇÄ¡ ¾Ê´Ù¸é.. Thread Priority¸¦ Á¶Á¤Çϴ°͵µ ÇÑ ¹æ¹ýÀÔ´Ï´Ù.

SetThreadPriority ¶ó´Â API¸¦ ¾²½Ã¸é.. ±×·°Àú·° ´À½¼ÇÑ pollingÀ»

ÇÒ¼ö ÀÖÀ»°Ì´Ï´Ù.. ±Ùµ¥.. ¿ª½Ã 98°°Àºµ¥¼­´Â.. ¾à°£ ¹ÝÀÀÀÌ ºÒ±ÔÄ¢ÀûÀÌ´õ±º¿ä..

¿ª½Ã.. OS´Â NT³ª Unix°¡ ±ò²ûÇѰа°½À´Ï´Ù..

±×·³ Âü°í°¡ µÇ¾ú±â¸¦.. 

¾È³çÇϼſä ..
½ºÅ¸°°Àº ¹èƲ³Ý ±¸¼ºÀ» ¾î¶»°Ô Çϴ°ÍÀÎÁö ±Ã±ÝÇÕ´Ï´Ù.
´ÙÀÌ·ºÆ® Ç÷¹À̸¦ º¸¹È ·Îºñ¶ó´Â°Ô ÀÖ´«µ¥ ±×·¯·Îµµ µÇ´ÂÁö
¾Æ´Ô ¼ÒÄÏÇÁ·Î±×·¥ÀÌ¿ëÇØ¼­ ¼­¹ö±¸ÃàÇØ¾ßÇÏ´ÂÁö
±×¸®°í ¾î¶²¹æ¹ýÀÌ Á¶ÀºÁö Á¶¾ðÁ» ºÎʵå·Á¿ä..
±×·³ Áñ°Å¿î ÇÏ·çµÇ½Ê¼Å¿ä ²Ù¹÷.. 
¿ì¼±, ¸Ó±× °ÔÀÓ ¼­¹ö´Â

¸»±×´ë·Î °ÔÀÓ ¼­¹ö°¡ µÇ´Â°Ì´Ï´Ù.

äÆÃ¼­¹ö,¸ÞÀϼ­¹ö°°Àº°Íµéµµ Ưº°È÷ ¾î¶² Ç¥ÁØ Çü½ÄÀÌ

Àִ°ÍÀº ¾Æ´ÏÁö¿ä. ¹°·Ð, ±×µéÀÌ ÀÌ¿ëÇÏ´Â

ÇÁ·ÎÅäÄÝ(ÇÁ·Î±×·¥°£ÀÇ Åë½Å ±Ô¾àÀ̶ó »ý°¢ÇÏ½Ã¸é µË´Ï´Ù^^)

Àº Ç¥ÁØÀΰ͵µ ÀÖÁö¸¸,(POP3, SMTPµûÀ§°¡ ±×·¸ÁÒ)

¸Ó±× °ÔÀÓ ¼­¹ö¸¦ ¸¸µé·ÁÇÑ´Ù¸é ÇØ´ç °ÔÀÓ¸¸ÀÇ ÇÁ·ÎÅäÄÝÀ»

Á¤ÀÇÇϽŴÙÀ½ °ÔÀÓ Å¬¶óÀÌ¾ðÆ®¿Í Åë½ÅÇÏ´Â ¼­¹ö¸¦ ¸¸µé¾î Áֽøé 
±×°ÍÀÌ °ÔÀÓ ¼­¹öÀÔ´Ï´Ù.

±×¸®°í,Windows°è¿­À̶ó¸é ¸ðµÎ winSock À» ÀÌ¿ëÇϱ⶧¹®¿¡

³×Æ®¿öÅ© °ü·Ã ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀº Å©°Ô Ʋ·ÁÁöÁö ¾Ê½À´Ï´Ù.

ÇÏÁö¸¸,98À̶û NT¶ûÀº Ä¿³ÎÀÌ Æ²¸®´Ï±î ¼¼ºÎÀûÀ¸·Î´Â Ʋ¸®°Ô

¸¸µé¼ö ÀÖ°ÚÁÒ!

¸¸¾à,, äÆÃ Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö¸¦ ¸¸µå½Ç ÁÙ ¾È´Ù¸é

°ÔÀÓ ¼­¹ö¸¦ ¸¸µéÁغñ´Â ´Ù µÈ°ÍÀ̳ª ¸¶Âù°¡ÁöÀÔ´Ï´Ù.(Áغñ°¡ 
´ÙµÈ°Ì´Ï´Ù^^;)

Âü°í°¡ µÇ¼ÌÀ½.... 
¾È³çÇϼ¼¿ä.. À̹ø¿¡ ¾î¼´Ù°¡ ÀÌÂÊÀ¸·Î °øºÎ¸¦ ½ÃÀÛÇÏ°Ô µÇ¾î¼­¸®.. ÀÌ °Ô½ÃÆÇ¿¡

¿À°Ô µÇ¾ú½À´Ï´Ù. ¼­¹ö ÇÁ·Î±×·¡¹Ö ½ßÃʺ¸¶ó¼­ óÀ½ºÎÅÍ Âß º¸´Ùº¸´Ï óÀ½¿¡ 3d

ÇÁ·Î±×·¡¹Ö ½ÃÀÛÇßÀ»¶§¸¸Å­À̳ª ¸·¸·ÇÏ´õ±º¿ä. ºñµ¿±âÈ­ IO ¶ó´ø°¡ ¸ÖƼ¾²·¹µùÀÌ

¶ó´ø°¡ ºÐ»ê󏮶󴸰¡ µîµîµî...

óÀ½¿¡´Â À¯´Ð½º·Î ¼­¹öÇÁ·Î±×·¡¹ÖÀ» Â¥·Á°í »ý°¢Çß¾ú´Âµ¥ ºÒÇàÈ÷µµ ¸®´ª½º ȯ°æ

¿¡ ÀûÀÀÇϱⰡ ½±Áö ¾ÊÀ» µí ÇØ¼­ NT ÂÊÀ¸·Î ¹æÇâÀ» ¼±È¸ÇÏ¿´½À´Ï´Ù. ¿äÁò À̰Í

Àú°Í Ã¥À» º¸°í Àִµ¥ Jeff Richter ÀÇ À©µµ¿ì Ã¥°ú ½ºÆ¼ºì½ºÀÇ À¯´Ð½º ³×Æ®¿öÅ·Ã¥

À» º¸°í ÀÖ½À´Ï´Ù. 
¾î·°Ç Áö»ó°úÁ¦´Â ¸¹Àº Ŭ¶óÀÌ¾ðÆ®°¡ Á¢¼ÓÇØ¼­ ÃÖ´ëÇÑ ½º¹«½ºÇÏ°Ô º¼ÀÏ º¸°í ³ª°¡

´Â ȯ°æÀ» ¸¸µå´Â °ÍÀε¥.. ¸ÖƼ¾²·¹µù¹®Á¦¿Í IO ¹®Á¦°¡ ÀÏ´Ü °É¸²µ¹ÀÌ µÇ´õ±º¿ä

1thread per 1client ¹æ½ÄÀº È®À强ÀÌ ´Ù¼Ò °á¿©µÈ´Ù´Â ´À³¦ÀÌ µé¾î¼­
Thread-pooling

À» »ç¿ëÇØ¾ß°Ú´Ù´Â »ý°¢À» Çß¾ú´Âµ¥, ¸¶Ä§ W2k ¿¡¼­´Â QueueUserWorkItem À̶ó´Â

ÇÔ¼ö¸¦ ÅëÇØ¼­ ÀÚµ¿ÀûÀ¸·Î ¾²·¹µåÀÇ °¹¼ö¸¦ Áõ°¨½ÃÄѰ¡¸é¼­ ¹ë·±½ÌÀ» ÇÏ´Â ±â´ÉÀ»

Á¦°øÇÏ´õ±º¿ä. ¶ÇÇÑ ³×Æ®¿öÅ© °ü·Ã IO ¿¡ À־µµ IoCompletionPort ¶ó´Â °³³äÀ»

ÅëÇØ¼­ ÇØ´ç IO °¡ ¿Ï·áµÇ´Â ½ÃÁ¡¸¶´Ù ÀÚµ¿ÀûÀ¸·Î ±â´Ù¸®´Â Worker Thread ¿Í ¿¬°á
½ÃÄÑÁÖ´Â ±â´ÉÀÌ ÀÖ´Â °Í °°°í.. ¾î·µç ÀÌ 2 °¡Áö °³³ä + Winsock2 ÀÇ ±â´ÉµéÀÌ

¿¬°áµÇ¸é ³ª¸§´ë·Î ¿î¿µÃ¼Á¦¿¡ ¸Â°Ô Àß ±¸¼ºµÈ ½Ã½ºÅÛÀÌ ³ª¿Ã°Í °°´Ù´Â ´À³¦ÀÌ µé

¾ú½À´Ï´Ù....... ¸¸!

VS 6.0 ¿¡ ÀÖ´Â Platform SDK ¿¡´Â QueueUserWorkItem °°Àº ÇÔ¼ö´Â µîÀåÇÏÁöµµ

¾Ê´õ±º¿ä --;...

±×·¡¼­ Áö±Ý ¸ðµ©À¸·Î ms ÀÇ ftp ¿¡ Á¢¼ÓÇØ¼­ w2k Jan2000 SDK ¸¦ ¹Þ°í ÀÖ½À´Ï´Ù

¾î´À ö³â¿¡³ª ´Ù ¹ÞÀ»·ÃÁö --;.. 
Á¦°¡ »ý°¢ÇÏ´Â ¹æÇâÀÌ Àß »ý°¢ÇÏ´Â ¹æÇâÀÎÁö ¾ÆÁ÷ È®½Åµµ Á» ºÎÁ·Çϰí, ¾µ¸¸ÇÑ

¿¹Á¦µµ ¾Æ½¬¿î »óȲÀ̶ó ¸îÀÚ ²ôÀû°Å·Áº¾´Ï´Ù..

¿©·¯ºÐ ¸ðµÎ ¾ÕÀ¸·Î ÀÌ °Ô½ÃÆÇ¿¡¼­ ÀÚÁÖ ºË°Ô µÉ µí..

±×·³

ÇбÔ
neolith 
Çïºê·¹½º ¼­¹ö°¡ ´ÜÀÏ ·çÇÁ ³ë ¾²·¹µå ¹æ½ÄÀÌ¿¡¿©. ÇÁ·Î±×·¡¹Ö ±â¹ýÀûÀÎ Ãø¸é¿¡¼­

º¸¸é ´Ü¼ø¹«½ÄÇÏÁö¸¸ »ç½Ç °¡Àå ¾ÈÁ¤ÀûÀ̶ó´Â »ý°¢ÀÌ µì´Ï´Ù. ¹«¾ùº¸´Ùµµ ´ÜÀÏ ·çÇÁ

±¸Á¶¾Æ·¡¼­´Â ¾ÆÀÌÅÛ º¹»ç°¡ ºÒ°¡´ÉÇÏ´Ù´Â ÀåÁ¡ÀÌ ÀÖÁÒ. ¾îÂ÷ÇÇ ÇѼø°£¿¡ Çϳª¸¸

ó¸® Çϴϱñ¿ä.

·çÇÁ¹æ½ÄÀÇ ¼­¹ö 1°³°¡ Ææ3 500 CPU¿¡¼­ ÀûÁ¤ »ç¿ëÀÚ 600~700¸í(ÃÖ´ë 900)±îÁö

󸮰¡ °¡´ÉÇÏ´õ±º¿ä. 0.4ÃÊ µ¿¾È ¼ÒÄÏ ¸Þ½ÃÁö¸¦ ¹Þ¾Æ Å¥¿¡ ³Ö°í ÀϰýÀûÀ¸·Î

ó¸®Çϴµ¥ 0.4Ãʰ£¿¡ Ŭ¶óÀÌ¾ðÆ®·Î ºÎÅÍ ¼ö½ÅµÇ´Â ¸Þ½ÃÁö°¡ 1000~1500°³

»çÀÌÀÔ´Ï´Ù. Ææ3 500±ÞÀÇ CPU·Î´Â ÀÌÁ¤µµ ó¸®Çϴµ¥´Â º° ¹«¸®°¡ ¾ø´õ±º¿ä.
´Ü ´ÜÀÏ ¾²·¹µåÀ̱⠶§¹®¿¡ ¸ÖƼ CPU ȯ°æÀÇ ¼­¹ö¿¡¼­ ÀÚ¿ø³¶ºñ°¡ ÀÖÀ» ¼ö Àִµ¥

À̰æ¿ì¿¡´Â ¼­¹ö¸¦ ¿©·¯°³ ¶ç¿ì¸é µÇ´õ±º¿ä. ¾îÂ÷ÇÇ ¸Ê ºÐÇÒ ¹æ½ÄÀ¸·Î °¢°¢ÀÇ ¸ÊÀ»

ó¸®ÇÏ´Â ¼­¹ö°¡ ³ª´©¾îÁ® ÀÖÀ¸´Ï±ñ¿ä. CPU °¹¼ö¿¡ ¸Â°Ô²û ¼­¹ö ÇÁ·Î±×·¥À»

ÇÒ´çÇϸé CPU ÀÚ¿øÀÌ ³¶ºñµÇÁö´Â ¾Ê´Â °Í °°´õ±º¿ä.


ÀÌ»ó ´ÜÀÏ ¾²·¹µå ¹æ½Äµµ ¾µ¸¸ÇÏ´Ù´Â ÀǰßÀ̾ú³×¿ä. 
¾È³çÇϼ¼¿ä.

¸Þƾ °ÔÀÓ ¼­¹öÀÇ °æ¿ì Soph ´Ô°ú °°ÀÌ ¹«½ÄÇÑ ·çÇÁ¸¦ ½è½À´Ï´Ù.
¸®´ª½º¿¡¼­ select() Æú¸µÀ» ÇØ¼­ ¸¸µé¾ú´Âµ¥, 1200¸í ±îÁö´Â ÇÑ
ÇÁ·Î¼¼½º¿¡¼­ ¾î´ÀÁ¤µµ ¹öƼ´õ±º¿ä. À½.. µð½ºÅ© ¾ï¼¼½Ì ºÎºÐÀº
¾²·¹µå¸¦ ½è½À´Ï´Ù¸¸.. »ç¿ëÀÚ°¡ ´À³¥ Çʿ䰡 ¾ø´Â ºÎºÐÀÌ´Ï Èì.

¾²·¹µå´Â ¸ÖƼŽºÅ·ÀÌ ¾ÈµÇ´Â Á¦ µÎ³ú¿¡´Â ³Ê¹«³ªµµ °íÅëÀ» ÁÖ±â
¶§¹®¿¡, ±×¸®°í ¿¹¿Ü󸮰¡ ¸¹ÀÌ ÇÊ¿äÇÑ °ÔÀÓ¿¡¼­ (ÀÌ°Ç Á¦ ÇÁ·Î±×·¥
µðÀÚÀÎ ÀÚü°¡ À߸øµÇ¼­ ±×·±Áö ¸ô¶óµµ¿ä Å©ÇÏÇÏ) ¾²·¹µå´Â Â¥ÁõÀÏ
²¨¶ó´Â ±«º¯À» ÆîÄ¡¸ç, ¶ÇÇÑ Á¦°¡ ÇÁ·Î±×·¡¹Ö öÇÐÀ» ¼±È£ÇÏ´Â »ç¶÷ÀÌ
¾Æ´Ï¶ó¼­ ¹«½ÄÇÑ ·çÇÁ¸¦ °í¼öÇϰí ÀÖ½À´Ï´Ù.

À½.. ±×·¡¼­ Soph ´Ô ¸»¾¸´ë·Î ÇÁ·Î¼¼½º¸¦ ¸¹ÀÌ ¶ç¿ì´Â ¹æ½ÄÀ¸·Î 
ó¸®Çϰí ÀÖ½À´Ï´Ù.

ÇÑ ÇÁ·Î¼¼½º¿¡¼­ avg 150ms/sec µµ °É¸®´Ï ÇÒ¸¸ÇÏÁÒ. ÇÁ·Î¼¼½º ¼¼°³
±îÁö´Â Xeon 550mhz two way ¿¡¼­ ÇÒ¸¸ ÇÏ´øµ¥¿ä.

±×¸®°í ÇöÀç ¸ÞÆ¾ °ÔÀÓÀº À§¿Í °°ÀÌ µ¹¾Æ°¡°í ÀÖ½À´Ï´Ù. DB ¼­¹ö´Â
SQL + ÀÚüÁ¦ÀÛ Çü½ÄÀ¸·Î µ¹¾Æ°¡°í ÀÖ½À´Ï´Ù.

-ºñ¿±

ps. ¸Þƾ °ÔÀÓÀ̶ó°í È«º¸µµ ¾ÈÇϰí ÀâÁö¿¡µµ ¾È³ª¿Â ±«»óÇÑ ¿Â¶óÀÎ
°ÔÀÓÀÌ ÀÖ½À´Ï´Ù. -_-; 
¾Æ·¡ ±ÛÀ» º¸´Ï Àú¶û °ÅÀÇ »ý°¢ÀÌ °°À¸½Å°Å °°±º¿ä.
Àúµµ º°·Î ¾²·¡µå³ª ±×·±°É Àß ¸ð¸£±â ¶§¹®¿¡--_--;;
÷¿¡´Â ¼­¹ö ÇѰ³·Î ÇÏ·Á°í ÇßÀ¸³ª.
Æ÷Æ®¸®½º ¼­¹ö¸¦ º¸°í.. ÀÌ·¡µµ µÉ°Å °°´Ù¶ó´Â »ý°¢À»
ÇßÁÒ.
±×¸®°í »ý°¢Çغ¸´Ï.. ÇÑÄÄ¿¡¼­µµ ¿©·¯°³¿¡ ¼­¹ö¸¦ ¶ç¿ï
¼ö ÀÖ´õ±º¿ä. Æ÷Æ®¸¸ ¹Ù²Ù¸é.^^
±×·¡¼­ Àú´Â ¼­¹ö¸¦ ÇÑ 5°³ Á¤µµ ¸¸µé±î »ý°¢Çϰí ÀÖ¾ú
´ä´Ï´Ù.
¿ì¼± °ÔÀÓ¿¡ À帣·Î ºÁ¼­´Â ±×¸® ·ºÀÌ ¾øÀ»µí ½Í°í¿ä.
³ªÁß¿¡´Â ½ºÅ¸Ã³·³. »ç¿ëÀÚ ¼­¹öµµ »ý°¢ÇØ º¼°Å±¸¿ä.
¸¸µé°í ³ª¸é... ´õ °íÄ¡°í ¹æ¹ýÀ» ¼³¸íÇØ µå¸®°í ½ÍÀºµ¥.
¾ÆÁ÷ ½ÃÀÛÀÌ ¾ÊµÅ ÀÖÀ¸´Ï...-_-;;
¿À´Ã ºÎÅÍ ÇÒ ¿¹Á¤À̶ø´Ï´Ù^^ 
¾È³çÇϼ¼¿ä? ¾Æ·¡ ±¤Çö´Ô ÇÑÁÖ´Ô Ãá±â´Ô ±Û Àß º¸¾Ò½À´Ï´Ù. ·çÇÁ¹æ½ÄÀ» »ç¿ëÇÑ´Ù¸é

ÀÏÁ¤½Ã°£µ¿¾ÈÀº ÇÁ·Î¼¼½º 󸮸¦ ÇÏÁö ¾Ê°í IO ÀԷ¸¸ ¹Þ¾Æ ¸ð¾Ò´Ù°¡ ´Ù½Ã

ÀÏÁ¤½Ã°£µ¿¾ÈÀº IO ÀÔ·ÂÀ» ¹Þ´Â 󸮴 ÇÏÁö ¾Ê°í 󸮸¦ ÇØµÎ°í, ´Ù½Ã

ÀÏÁ¤½Ã°£µ¿¾È¿¡´Â Ãâ·ÂÀ» º¸³»´Â ½ÄÀÌ µÇ´Â °ÍÀΰ¡¿ä? ±×·± °æ¿ìÀÇ ÀÔÃâ·Â

¹æ½ÄÀº À©»èÀÇ ºñµ¿±âÈ­ ¼ÒÄÏÀ» »ç¿ëÇÏ´Â °ÍÀΰ¡¿ä? select µîÀ» ÀÌ¿ëÇÑ

Æú¸µÀ» »ç¿ëÇÏ°Ô µÇ´Â °ÍÀΰ¡¿ä? ¸ÖƼ¾²·¹µùÀ» »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ï±î

¾Æ¸¶ ºí·°Å·Àº ¾Æ´Ò °Í °°°í¿ä..

ÇбԠ
¹¹ Ưº°ÇÑ °ø½ÄÀÌ µû·Î Á¤ÇØÁ® ÀÖ´Â°Ç ¾Æ´ÏÁö¸¸
¾Æ·¡ ÇÐ±Ô´Ô ¸»Ã³·³ 1ÀÎ´ç ¾²·¹µå Çϳª´Â ³Ê¹« ºñÈ¿À²ÀûÀ̰í¿ä.
±×·² Çʿ䰡 ¾ø´Ù°í »ý°¢ ÇÕ´Ï´Ù. OS¿¡ µû¶ó ¾²·¹µå °¹¼ö¿¡ ÇѰ赵 ÀÖ°í¿ä.
ÀÛ¾÷¿¡ ´ëÇØ ¸¹ÀÌ °É¸®´Â ÀÛ¾÷¿¡ Thread¼ö¸¦ Á¶ÀýÇØÁÖ´Â °ÍÀÌÁÒ.
PC,NPC,Monsterµî¿¡ Thread¸¦ Çϳª¾¿ µÎ°í ó¸®Çϴµ¥ Monster 1000¸¶¸®ÀÇ
¿òÁ÷ÀÓÀ» ó¸®ÇÒ¶§ 100ºÐÀÇ 1ÃÊÁ¤µµ °É¸®´õ±º¿ä. ¹°·Ð ¿©·¯°¡Áö ·çƾÀÌ ¾ÆÁ÷ ¸¹ÀÌ
±¸Çö¾ÈµÈ »óÅÂÀÌ°í ±¸Çö¹æ½Ä¿¡ µû¶ó Â÷À̰¡ ÀÖ°ÚÁö¸¸¿ä , °¡Àå ½Ã°£ÀÌ ¸¹ÀÌ
°É¸®´Â ÂÊÀº ³×Æ®¿÷ó¸®Àε¥ À̺κÐÀº inputÀÇ °æ¿ì Å¥¸¦ µÎ°í ¾²·¹µå Çϳª´Â
°è¼ÓÇØ¼­ À¯Àú·ÎºÎÅÍ ÆÐŶÀ» ¹Þ¾Æ¼­ ½×¾ÆµÓ´Ï´Ù. ±×¸®°í ±×°É ó¸®ÇÏ´Â
¾²·¹µå(parseThread¶ó´Â À̸§À» ºÙ¿©ºÃ½À´Ï´Ù^^;) ´Â °è¼Ó ´ë±âÇϸç Å¥¿¡ ÆÐŶÀÌ
µé¾î¿À±æ ±â´Ù¸®°í µé¾î¿À¸é °æÀïÀûÀ¸·Î »©°¡¼­ ó¸®ÇÏ´Â ±¸Á¶ÀÔ´Ï´Ù.
outputÀÇ °æ¿ì outputQueue¿¡ ÀÔ·ÂÇÏ´Â ·çƾÀÌ ¿©·¯±ºµ¥ ¶ó´Â Á¡À»
»©¸é inputQueue¿Í µ¿ÀÏÇÏÁÒ.
¸ÖƼ¾²·¹µå ¼­¹öÀÇ ÀϹÝÀûÀÎ ±¸Á¶¶ó°í »ý°¢ ÇÕ´Ï´Ù.
¿©±â¼­ ó¸®ÇÏ´Â ¾²·¹µå °¹¼ö´Â config È­ÀÏ¿¡¼­ Á¶ÀýÇÒ ¼ö ÀÖ°Ô Çß½À´Ï´Ù. 
°ü¸®ÀÚ°¡ »óȲÀ» º¸°í Æ©´×ÀÌ °¡´ÉÇϵµ·Ï ¸»ÀÌÁÒ.
¼­¹öÄֿܼ¡´Â Å¥ÀÇ »óŸ¦ È®ÀÎÇØ º¼¼ö ÀÖ´Â ¸í·ÉÀ» µÎ¾î¼­ inputÅ¥°¡
½×À̸é parseThread°¹¼ö¸¦ ´Ã·ÁÁÖ°í , outputQueue°¡ ½×À̸é À¯Àú¿¡°Ô
³¯¸®´Â Thread°¹¼ö¸¦ ´Ã·ÁÁÖ°Ô (¼öµ¿À¸·Î ^^;)ÇØ¼­ ¼º´É¿¡ ´ëÇÑ Æ©´×À»
ÇÒ ¼ö ÀÖ°Ô ¸»ÀÌÁÒ. (¹°·Ð ¸ÖƼ ¼­¹ö¶ó¼­ À̺κÐÀº ±¸Á¶°¡ Á» ´õ º¹ÀâÇÕ´Ï´Ù.)
¹°·Ð À̺κеµ ³»ºÎÀûÀÎ ±¸ÇöÀ¸·Î QueueÀÇ »óŸ¦ Ã¼Å©ÇØ¼­ ThreadÀÇ °¹¼ö¸¦ Á¶ÀýÇÒ
¼ö ÀÖ°Ô ÇÒ ¼ö ÀÖ°ÚÁö¿ä.. (±×ºÎºÐ¸¸ ±¸Çö Çϸé ÇбԴÔÀÌ ¸»ÇÑ ¶óÀ̺귯¸®¿Í ºñ½ÁÇÑ
±¸Á¶³×¿ä ^^;)
ÁÁÀº Á¡Àº À¯µ¿¼ºÀ̳׿ä. À̹ø¿¡ º£Å¸µµÁß QueueÀÇ ¸ÖƼ¾²·¹µå 󸮽à ¹®Á¦°¡
¹ß°ßµÇ¾úÀ»¶§ parseThread°¹¼ö¸¦ 1°³·Î ÁÙ¿©¼­ À§±â¸¦ ¸ð¸é Çß´Ù´Â.. ^^:
¹°·Ð ÇÁ·Î±×·¥Â©¶§ °ñ¸Ó¸®½â½À´Ï´Ù. ÀÌ ³×Æ®¿÷ ¿£ÁøÂÊ ±¸Çöµµ ±¸ÇöÀÌÁö¸¸
¸ÖƼ Thread »ç¿ë½Ã ½ÇÁúÀûÀÎ °ÔÀÓ ±¸Çö¿¡¼­ ±¸Á¶¸¦ ÀßÀâÁö ¾ÊÀ¸¸é Èò¸Ó¸®°¡ ´õ
´Ã¾î³¯ °Å¶ó´Â Àü¼³ÀÌ~~~..
__
À̰游 
PS.
ö¾Æ. ³ÊÀÇ ¾Æ¹öÁö´Â ¿¹ÀüÀÇ ³ª³ª ¿¡¸Þ¶ö´õ½º¿Í °°ÀÌ ½Î¿ü´ø ¸ÚÁø Àü»ç¿´´Ù.
ºÒÇàÈ÷ µµÁß¿¡ ´Ù¸¥ ±æÀ» °¡°Ô µÇ¾úÁö¸¸...
³Ê´Â ³ÊÀÇ ¾Æ¹öÁö¸¦ ¸¹ÀÌ ´à¾Ò´Ù.

ö¾Æ! ºñ·Ï ¾Æ¹öÁö¿Í ¶æÀº ´Þ¶óµµ ±×°ÍÀ» ¶Ù¾î³Ñ¾î ÀþÀºÀ̰¡ ¹Ì·¡¸¦ ¸¸µå´Â °ÍÀÌ´Ù.
ºÎ¸ð¿¡°Ô¼­ ÀÚ½ÄÀ¸·Î, ÀڽĿ¡°Ô¼­ ¶Ç ±× ÀڽĿ¡°Ô ÇÇ´Â ±×·¸°Ô Èê·¯ ¿µ¿øÈ÷
À̾îÁø´Ù.
±×°ÍÀÌ ÁøÁ¤ÇÑ ¿µ¿øÇÑ »ý¸íÀ̶ó°í ³ª´Â ¹Ï´Â´Ù.
__
ÀºÇÏöµµ999 ±ØÀåÆÇÁß¿¡¼­
http://show.thrunet.com/entercp/aniline/bb004a01.asf 
Çïºê·¹½º ¼­¹ö´Â NT·Î µÇ¾î ÀÖ±¸¿ä, Win32ÀÇ ºñµ¿±â ¼ÒÄÏÀ¸·Î ³íºí·ÏÅ· ¸Þ½ÃÁö ±¸µ¿

¹æ½ÄÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. 0.4 ÃÊ °£°ÝÀÇ ¸ÖƼ¹Ìµð¾î ŸÀ̸Ӹ¦ °É¾î ³õ°í ±× µ¿¾ÈÀº

¾Æ¹«·± ÀÛ¾÷À» ÇÏÁö ¾Ê°í ´ë±âÇÏ¸ç ¿ÀÁ÷ ¼ÒÄÏ À̺¥Æ®°¡ ¿À¸é ó¸®Çϱ⸦ ±â´Ù¸®°í

ÀÖ½À´Ï´Ù. 0.4ÃÊÀÎ ÀÌÀ¯´Â Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ÀÇ Ä³¸¯ÅÍÀÇ µ¿ÀÛ󸮸¦ À§ÇØ º¸³»´Â

¸Þ½ÃÁöÀÇ ÃÖ¼Ò °£°ÝÀ̱⠶§¹®À̱¸¿ä, ±×µ¿¾È ¼ö½ÅµÇ´Â Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍÀÇ ¼ÒÄÏ

¸Þ½ÃÁö´Â ¸ðµÎ Å¥¿¡ ÀúÀåµÇÁÒ. ±×·±´ÙÀ½ Çѹø¿¡ Àϰý ó¸®Çϸ鼭 NPC, ¸ó½ºÅ͵éÀÇ

µ¿ÀÛ ¿ª½Ã °°ÀÌ Ã³¸®ÇÕ´Ï´Ù. ó¸®Çϸ鼭 °¢°¢ÀÇ Å¬¶óÀÌ¾ðÆ®µé¿¡°Ô º¯°æµÈ ¸Þ½ÃÁö¸¦

º¸³» ÁÝ´Ï´Ù. 
ÀÌ·± Çïºê·¹½º ¼­¹öÀÇ ±¸Á¶°¡ ¾î´ÀÁ¤µµÀÇ ÆÛÆ÷¸Õ½º¸¦ º¸¿©ÁÖ´Â °ÍÀÎÁö´Â Àß

¸ð¸£°Ú½À´Ï´Ù¸¸ Áö±Ý±îÁö ¼­ºñ½º ÇØ ¿À¸é¼­ º¸¾Æ ¿Â °ÍÀ¸·Î´Â ´ÜÀÏ ¾²·¹µå Ä¡°í´Â

»ó´çÇÑ ¼öÁØÀÌ ¾Æ´Ò±î ÇÕ´Ï´Ù. ¶Ç´Ù¸¥ ÀåÁ¡À̶ó¸é µð¹ö±ëÀÌ ½±°í, ¾ÆÀÌÅÛ º¹»çµî°ú

°°Àº ¹®Á¦°¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ ¸Å¿ì ÀûÀ¸¸ç, ½Ã½ºÅÛÀûÀ¸·Îµµ ¾ÈÁ¤ÀûÀ̾ ÀÚ¿ø´©Ãâ

µîÀÇ ¹®Á¦³ª NTÀÚüÀÇ ºÒ¾ÈÁ¤À¸·Î ÀÎÇØ ½Ã½ºÅÛÀÌ ¸ØÃßÁö ¾Ê´ÂÇÑ Àß ´Ù¿îµÇ´Â ÀÏÀÌ

¾ø½À´Ï´Ù.

¹°·Ð ÀÌ°Ç Çïºê·¹½º ó·³ °¢°¢ÀÇ ¸ÊÀÌ µ¶¸³ÀûÀ¸·Î ¿î¿ëµÇ´Â ±¸Á¶ÀÇ ½Ã½ºÅÛ ¾Æ·¡¼­
ÇØ´çµÇ´Â ¸»À̱¸¿ä, ¿ï¿Âó·³ ¼­¹ö°£ÀÇ À̵¿À» ¾Ë¾ÆÃ§ ¼ö ¾ø´Â ½Ã½ºÅÛÀ̶ó¸é ¹®Á¦°¡

´Ù¸¦°Ì´Ï´Ù.

¾²´Ùº¸´Ï ´ÜÀÏ ·çÇÁ°¡ ÁÁ´Ù´Â ¸»Ã³·³ µé¸®´Âµ¥ ÀÌ°Ç Á¦°¡ ¾²·¹µå ÇÁ·Î±×·¥À» ÇØº¸Áö

¾ÊÀº°Í¿¡¼­ ºñ·ÔµÇ´Â °³ÀÎÀûÀÎ ÀǰßÀÌÁÒ^^


¾î·µç NT¼­¹ö, ºñµ¿±â ³íºí·ÏÅ· Win32 ¼ÒÄÏ ¸Þ½ÃÁö ó¸® ¹æ½Ä, ´ÜÀÏ ·çÇÁ, ¸ÊºÐÇÒ

µ¶¸³ ó¸® ¹æ½ÄÀ¸·Î Çïºê·¹½º Á¤µµÀÇ ½Ã½ºÅÛ ±¸ÃàÀÌ °¡´ÉÇÏ´Ù´Â Á¡Àº Âü°í°¡ µÇ°Ú

³×¿ä. 
ÇöÀç Çïºê·¹½º´Â µ¿½ÃÁ¢¼ÓÀÚ 1400~1500¸í Á¤µµ¸¦ ¼ö¿ëÇϰí ÀÖ°í ¼­¹ö ½Ã½ºÅÛÀº

Ææ2 300 DUAL 1´ë, Ææ3 500 DUAL 2´ëÀÇ ½Ã½ºÅÛ¿¡¼­ ·Î±×ÀÎ ¼­¹ö¸¦ Á¦¿ÜÇÑ

°ÔÀÓ¼­¹ö 7°³°¡ ÀÛµ¿Çϰí ÀÖ½À´Ï´Ù.

Âü°í°¡ µÇ¾úÀ¸¸é ÁÁ°Ú³×¿ä 
°æ¸¸´ÔÀÇ ¾ÆÅ¸³ª½Ã¾Æ¿Í ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î ¼­¹ö ÇÁ·Î±×·¡¹Ö
°èȹÀÌ ÀâÇô¼­.. »ó´ç ºÎºÐ ÁøÃ´ÀÌ µÇ°í ÀÖ±ä Çѵ¥..
°æ¸¸´Ô°ú ¾à°£ ´Ù¸¥ Á¡Àº.. pharsing thread°¡ Çϳª¶ó´Â Á¡..
À¯µ¿¼ºÀ» ÁÖ¸é ÁÁ±ä ÇϰÚÁö¸¸.. ºÎÇϰ¡ Ä¿Áö¸é À¯¸®ÇϰÚÁö¸¸..
ÀÏ´Ü.. ÇÑ °¡Áö ÀÏÀ» Çϴ¤¤ ¿©·¯°³ÀÇ ¾²·¹µå¸¦ µÎÀÚ´Ï..
°¢°¢ÀÇ ¾²·¹µå°¡ °øÈ÷ Á¤º¸ ±³È¯ÀÌ ÇÊ¿äÇÒ Áö ¸ð¸¥´Ù´Â °Í°ú.
Çϳª¶óµµ ÃæºÐÇÒ °Å¾ß~~ ¶ó´Â ¸·¿¬ÇÑ ±â´ë¿Í ¹è¯...À¸·Î´Ù°¡... ^^;;

´Ù¸¸ °ÆÁ¤µÇ´Â °ÍÀÌ Å¸ÀÌ¸Ó Áֱ⸦ 0.1ÃÊ·Î Àâ°í ÀÖ´Ù´Â °Í..
0.1ÃÊ µ¿¾È Àû°Ô´Â ¼ö¹é¿¡¼­ ¸¹°Ô´Â ¼öõ, ¼ö¸¸ÀÇ Å¬¶óÀ̾ðÆ®
¸Þ½ÃÁö¸¦ ó¸®ÇØ ÁÙ ¼ö ÀÖÀ»±î.. ÇÏ´Â Á¡ÀÓ´Ù.
0.1ÃÊ µ¿¾È Ŭ¶óÀÌ¾ðÆ® ¸®½ºÆ®(ȤÀº ¸Ê)¿¡¼­ ¼ö½ÅµÈ ¸Þ½ÃÁö°¡
ÀÖ´Â °¡ °Ë»çÇØ¼­¤Ç ÀÖÀ½ ó¸®ÇÏ´Â ¹æ½ÄÀε¥..
ÆÄ½Ì ¾²·¹µå¶ó±âº¸´Ù.. ¸ÞÀÎ °ÔÀÓ ¿£Áø ¾²·¹µåÀÌÁÒ.
°æ¸¸´ÔÀÇ ¸»¾¸ÇϽŠÇ÷£ ¿£ÁøÀº µû·Î... 
¸÷ ¿£Áø Çϳª µû·Î.. ȯ°æ ¿£Áø Çϳª µû·Î..
Á© ÇÒÀϾø´Â ȯ°æ¿£Áø.. ÈåÈå..

Çϳª ´õ ¹®Á¦°¡ µÇ´Â °ÍÀÌ Ä³¸¯ÅÍÀÇ À̵¿ ¼Óµµ°¡ Àú¸¶´Ù
´Ù¸£´Ù´Â °ÍÀε¥.. µû¶ó¼­, Ç÷£ ¿£Áø¿¡¼­ Àâ¾ÆÁÖ´Â
ŸÀ̸ÓÀÇ ÁֱⰡ ÀÛÀ» ¼ö ¹Û¿¡ ¾ø´Ù´Â °ÍÀÌÁÒ.. ¤Ð¤Ì
°ú¿¬ ¼­¹ö°¡ ¾ó¸¶³ª »¡¸® ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ´ÂÁö
¾Ë¼ö°¡ ¾øÀ¸´Ï... Á×°Ú±º¿ä.

´ë·« µÇ°ÚÁö... ÇÏ´Â ¸¶À½À¸·Î... ŸÁ¶°¡ µÇ°í ÀÖ½À´Ï´Ù..
ÀÌ·¸°Ô ÇùÖÇÏ´Ù°¡ ³ªÁß¿¡ ¾ÈµÇ¸é ¾î¶»°Ô °¨´çÇÏÁÒ? Èê..
±×·³.. 
parseThread¸¦ ¼³°èÇÒ¶§ °¢°¢ÀÇ ¾²·¹µåÀº µ¶¸³ÀûÀ¸·Î
¼³°è¸¦ Çß°í ³ª¸ÓÁö ¾²·¹µå¿Í´Â µû·Î locking Manager¸¦ µÎ¾î °°ÀÌ ¾²´Â
ÀÚ·áµéÀº º¸È£ÇØÁÖ´Â °ÅÁÒ.
parsethread¸¦ ÇϳªµÎ¸é 󸮹æ½Ä¿¡ µû¶ó Â÷À̰¡ ÀÖ°ÚÁö¸¸
󸮸øÇϰí Queue¿¡ ³²¾Æ ÀÖ´Â °æ¿ìµµ »ý±æ°Ì´Ï´Ù.
Çѹø ½ºÆ®·¹½º Å×½ºÆ®¸¦ ÇØº¸½Ê½Ã¿ä. ±×°Ô °¡Àå È®½ÇÇÕ´Ï´Ù.
½ÇÁö·Î µ¹¸®±â Àü¿¡ ¹Ì¸® ½Ã¹Ä·¹ÀÌ¼Ç ÇÏ´Â ÇÁ·Î±×·¥À¸·Î Å×½ºÆ®¸¦ ÇØº¸´Â°Ô
Áß¿äÇÕ´Ï´Ù. ¼­¹ö´Â »ç½Ç µ¹·Á º¸±â Àü¿£ ¸ð¸£°Åµç¿ä.
ÃæºÐÈ÷ Å×½ºÆ® µÇÁö ¾Ê¾Æ¼­ Ãʱ⿡ ¸î½ÊºÐ¿¡ Çѹø¾¿ Á×Àº Àûµµ ÀÖ°í¿ä.
µð¹ö±ë¿¡ È®½ÇÈ÷ µµ¿òÀÌ µË´Ï´Ù.
ºÒ¾È¿¡ ¶³Áö ¸¶½Ã°í ^^;
½ºÆ®·¹½º Å×½ºÆ® ÇÁ·Î±×·¥À» Â¥½Ê½Ã¿ä.
__
À̰游 
¾È³çÇϼ¼¿ä? ·¹ÀÌ¿ÊÀÔ´Ï´Ù.

¾Æ·¡ ±ÛÀ» º¸¸é¼­ ¼­¹ö ÄܼÖÀÌ ÇÊ¿äÇÏ´Ù´Â °É ´À²¼½À´Ï´Ù.

±×°Íµµ, ´Ü¼øÈ÷ Ç¥ÁØ Ãâ·Â¿¡ ÁÙÁÙÁÙ Âï´Â °Ô ¾Æ´Ï¶ó....

ncurses °°Àº °É ½á¼­ Àß Á¤·ÄÇØ¼­ º¸¿©Áà¾ß ÇÒ °Å °°³×¿ä.

Èì. °Å±â´Ù°¡ °¢ ºÐ»ê ¼­¹öµéÀÇ »óÅ ¹× ó¸® Àοø,

¸ó½ºÅÍ °³¼ö, ¾ÆÀÌÅÛ °³¼ö °°Àº °Íµéµµ Ãâ·ÂÇØÁÖ¸é ´õ´õ¿í

ÁÁ°Ú³×¿ä. ļļ.. ¿¡·¯ ¹ß»ý, Å©·¡Å· ½Ãµµ üũ(invalid

protocol) , DB »óÅ °°Àº °Íµµ º¸¿©ÁÖ°í.. ³ÄÇÏÇÏ..
°á±¹ ¶Ç ¼­¹ö ¸ð´ÏÅÍ ÇÁ·Î±×·¥°ú °ÔÀÓ¼­¹ö°£ÀÇ ÇÁ·ÎÅäÄÝÀ»

¸¸µé¾î¾ß ÇÑ´Ù´Â À̾߱âÀΰ¡??? ¿ì¿ô..


Èì. ½Ã°£ÀÌ ³¯Áö ¸ð¸£°Ú½À´Ï´Ù. ÀÌÁ¦ °Ü¿ì DB ½ºÅ°¸¶°¡ ³ª¿Â

»óÅÂÀε¥.. - -; ¾ðÁ¦ À̵¿½ÃŰ°í °ÔÀÓ ÄÚµå ³Ö°í ÇÏ¡...

==

the Dark Eden : the Bible of the Blood 
<´ÙÅ© ¿¡µ§>Àº ¾Æ¸§´Ù¿î µ¿À¯·´À» ¹è°æÀ¸·Î, ³¯Ä«·Î¿î °Ë°ú
¸·°­ÇÑ ÃÑ/ÆøÅº, ±×¸®°í ¼º·ÉÀÇ °¡È£·Î ¹«ÀåÇÑ Àΰ£µé°ú
°í´ë·ÎºÎÅÍ ÀüÇØÁö´Â °­·ÂÇÑ °ø°Ý¸¶¹ýÀ» »ç¿ëÇÏ´Â ºÒ¸êÀÇ
¹ìÆÄÀ̾îµé°£ÀÇ ¸¶Áö¸· ÀüÀïÀ» ´Ù·ç´Â ¿Â¶óÀÎ °ÔÀÓÀÔ´Ï´Ù.

^_^; ±â´ëÇØ ÁÖ¼¼¿ä.... 
¿ä»õ´Â °ÔÀÓ ¼­¹ö±¸ÃàÇÒ°æ¿ì
ISP ¿¡¼­ ȸ¼±À» ½Ñ°¡°Ý¿¡ ´ë ÁÖ°í,
¼­¹ö´Â µ¥ÀÌÅÍ ¼¾ÅÍ¿¡ µÎ´Â °æ¿ì°¡ ¸¹Àºµ¥¿ä,

NT±â¹ÝÀÇ ¼­¹ö¶ó¸é ¸®¸ðÆ® ÄÁÆ®·ÑÇϱⰡ ±²ÀåÈ÷ °ï¶õÇØ Áý´Ï´Ù.
ÇÏÁö¸¸, Unix ¶ó¸é ¸®¸ðÆ® µð¹ö±ëµµ µÇ´Â °­Á¡ÀÌ ÀÖÁö¿ä.

ÆÛÆ÷¸Õ½º ¸é¿¡¼­´Â NT³ª Unix³ª ºñ½ÁÇÏ´Ù´Â ´À³¦ÀÌÁö¸¸,
¼ö½Ê³â°£ ½×¿©¿Â Unix ÀÇ °ü¸®¿¡ À־ÀÇ Ãæ½ÇÇÔÀº
NT°¡ µû¶ó°¥°Ô ¸øµÈ´Ù°í »ý°¢ÇÕ´Ï´Ù.

°£´ÜÇÏ°Ô »ý°¢Çغ¸¸é.. Åð±ÙÀº Çß°í.. ¼­¹ö°¡ ´Ù¿îµÇ¾ú´Ù¸é..?
ȤÀº ÇØ¿Ü ¼­¹ö°¡ ÀÌ»óÀÌ »ý°å´Ù¸é..?

³×Æ®¿÷ °ÔÀÓÀº ´ëºÎºÐ ÀÚµ¿ ÆÐÄ¡¸¦ Áö¿øÇϴµ¥¿ä..
ÀÌÀÇ ±¸Çö¹æ¹ý°ú ÁÖÀÇ»çÇ×À» µè°í½Í¾î¿ä..
ÀÏ´Ü Á¦»ý°¢¿¡´Â ÃÖÃÊ Á¢¼Ó½Ã ÀÚ½ÅÀÇ ¹öÁ¯Á¤º¸¸¦ ¼­¹ö¿¡°Ô ¾Ë·ÁÁÖ°í...
¹öÀüÀÌ Æ²¸®¸é ¼­¹ö°¡ Ʋ¸° ¹öÀüÀÓÀ» ÅëÁöÇϸé Ŭ¶óÀÌ¾ðÆ®´Â...
ÀÚ½ÅÀÇ ÇÁ·Î¼¼½º¸¦ Á¾·áÇϸ鼭 ÀÚµ¿ÆÐÄ¡ ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù???
±×¸®±¸...
ÆÐÄ¡¿ë ¼­¹ö¿¡°Ô Á¢¼ÓÇÏ¿© ÇÊ¿äÇÑ ÆÄÀÏÀ» ´Ù¿î·Îµå ¹Þ´Â´Ù...
´Ù ¹ÞÀ¸¸é ¼³Ä¡Çϰí Ŭ¶óÀÌ¾ðÆ®¸¦ Àç½ÇÇà ÇÑ´Ù...
´ëÃæ ÀÌ·±½ÄÀ¸·Î ±¸»óÇØºÃ´Âµ¥.. ¹®Á¦´Â¿ä.
1. ÆÐÄ¡ÆÄÀÏ Àü¼Û¸¸ Àü´ãÇÏ´Â ¼­¹ö°¡ ÇÊ¿äÇѰ¡¿ä?
2. ÆÄÀÏ Àü¼ÛÀº ¾î¶²½ÄÀ¸·Î ÇàÇØ¾ßÇϳª¿ä?
Á÷Á¢ ÆÄÀÏ Àü¼ÛÀ» ÇØ¾ßÇÏ´ÂÁö ¾Æ´Ï¸é ÆÄÀÏ Àü¼ÛÀ» ÇØÁÖ´Â ´Ù¸¥ ¹æ¹ýÀÌ ÀÖ´ÂÁö..
¸¸ÀÏ Á÷Á¢ ÇØ¾ßÇÑ´Ù¸é ¾î¶² ¹æ¹ýÀÌ °¡Àå È¿À²ÀûÀÎÁö µè°í ½Í½À´Ï´Ù.

¿õ.. ³×¶±°×Àº °ñÄ¡¾ÆÇ ¿ä¼ÒµéÀÌ ¸¹Àº°Å °°±º¿ä.
²À ´äº¯ ºÎʵå·Á¿ä.. ¤Ð.¤ÐÀÏ´Ü »ç¿ëÀÚ°¡ ¸¹À¸¸é ÆÄÀÏÀü¼Û ¼­¹ö¸¦ µû·Î µÎ´Â°ÍÀÌ ÁÁ°ÚÁö¿ä?

»ç¿ëÀÚ°¡ ¾öû ¸¹´Ù¸é.. ¸ÞÀÎ ¼­¹ö°¡ ÆÐÄ¡¼­¹öÀÇ IP¸¦ ¾Ë·ÁÁ༭

Replicated ºÐ»ê¼­¹ö·ÎÀÇ È®Àåµµ °¡´ÉÇÒÅ×±¸¿ä..

ÆÄÀÏÀü¼ÛÀº ÀüÅëÀûÀÎ Kermit¹æ½ÄÀ̳ª Windowing ¹æ½Ä °°Àº°Å¸¦ ¾²¸é µÇ°Ú±º¿ä.

Kermit¹æ½ÄÀº ¸»±×´ë·Î ÇÑÆÐŶ º¸³»°í ¹Þ¾Ò´Ù´Â ÀÀ´äÀÌ ¿À¸é ´ÙÀ½ÆÐŶ º¸³»´Â

¹æ½ÄÀε¥.. º¸³»´Â delay ¶û ÀÀ´ä delay¶§¹®¿¡ ´ë¿ªÆøÀÌ ¾Æ¹«¸® ÁÁÀº ³×Æ®¿÷

À̶ó°í ÇØµµ ±×¸® ºü¸¥¼Óµµ´Â ³ª¿À±â ÈûµéÁÒ.. ¹¹.. µÚÁý¾î ¸»Çϸé..

»ç¿ëÀÚ°¡ ¸¹ÀÌ ºÙ´Â´Ù°í ´À·ÁÁö´Â °ÍÀÌ ¾Æ´Ï´Ï±ñ.. ±×·°Àú·° ¾µ¸¸ÇϰÚÁÒ? 
¹®Á¦´Â »ç¿ëÀÚ°¡ ÇѸíÀ̾ ¼ö¹é¸íÀÌ ¹ÞÀ»¶§¶û ¶È°°ÀÌ ´À¸®´Ù´Â°Í.. ^^;

¿©Æ° .. delay Â÷À̸¦ Á» ÁÙ¿©º¸°íÀÚ.. ÀÀ´äÀ» ¹Þ±â Àü¿¡ ¹Ì¸® ÆÐŶÀ» º¸³»°í..

ÀÀ´äÀÌ ÇÑ 7°³Âë ¾È¿Ô´Ù(¿¹¸¦µé¾î)¸é ÀÀ´ä¿À±â±îÁö ±â´Ù¸®°í..

¶Ç ÀÀ´ä ¸î°³ ¿À¸é º¸³»°í.. ÀÌ·± ¹æ½ÄÀÌ Windowing¹æ½ÄÀε¥..

´ëºÎºÐÀÇ ÆÄÀÏÀü¼Û ¾Ë°í¸®ÁòÀÌ ÀÌ·±¹æ½ÄÀ̶ó°í ÇÒ ¼ö ÀÖ°ÚÁö¿ä..

À§¿¡¼­ 7°³¸¦ ¿¹¸¦ µé¾úÀ¸´Ï.. WindowSize == 7 ÀÌ µÇ°ÚÁö¿ä?

¿©Æ° º¸³»°í È®Àι޴ °¹¼ö°¡ µ¿½Ã¿¡ 7°³Á¤µµ´Ï±ñ.. ÀüüÀûÀ¸·Î ºÃÀ»¶§

µô·¹À̰¡ »ó´çÈ÷ Àû°ÚÁö¿ä? À½. Window sliding ±×¸²À» ±×·Á°¡¸ç

¼³¸íÀ» Çϸé Á»´õ ÀÌÇØÇϱ⠽¬¿ïÅÙµ¥.. ¹¹.. tcpÃ¥°°Àº°Å º¸¸é ´Ù

³ª¿ÍÀÖÀ¸´Ï.. Âü°íÇϼ¼¿ä..

À½.. ¼³¸íÀÌ ¾öû ³­ÀâÇϱº¿ä.. ^^;

¿©Æ° µµ¿òÀÌ µÇ¾úÀ½ ÁÁ°Ú³×¿ä 
³×¶± Ãʺ¸ÀÚ È£ ÀÔ´Ï´Ù.
Á¦°¡ Áú¹®ÇÒ ³»¿ëÀº ¼­¹ö¿¡ Á¢¼ÓµÈ À¯Àú °ü¸®¿¡ °üÇÑ ³»¿ëÀÔ´Ï´Ù.
¿ì¼± »ý°¢ÇÑ ¹æ¹ýÀÌ CUser¶ó´Â Ŭ·¡½º¸¦ ¸¸µé¾î Á¢¼ÓµÈ À¯Àú¸¶´Ù
CUser¸¦ ÇÒ´çÇÕ´Ï´Ù. CUser´Â À¯ÀúÀÇ ID¿Í ¼ÒÄÏÀ» °ü¸®Çϴµ¥
ÀÌ CUser¸¦ ´Ü¼øÈ÷ ¸µÅ©µå ¸®½ºÆ®¸¦ ¸¸µé¾î °ü¸®¸¦ ÇÒ·Á´Ï À¯ÀúÀÇ
ID¿¡¼­ ¹®Á¦°¡ »ý±â´õ±º¿ä. ¸µÅ©µå ¸®½ºÆ®ÀÇ Áß°£¿¡ ÀÖ´ø À¯Àú°¡
³ª°¡¸é À¯ÀúÀÇ ID¸¦ ¼öÁ¤ÇØ¾ß ÇÒ°Í °°½À´Ï´Ù. ÇÁ·Î±×·¥ ¼¼°è 12¿ù¿¡
³ª¿Â ±â»ç¸¦ ÀÐÀ¸´Ï À¯Àú ID¸¦ InterlockedIncrement()¸¦ ÀÌ¿ëÇÏ¿©
¸¸µé´õ±º¿ä. ±×·±µ¥ À§ÀÇ °ÍÀ» ¾²¸é À¯Àú°¡ °è¼Ó µé¾î¿À¸é ID°¡ ¹«ÇÑÁ¤
Ä¿Áö´Â °æ¿ì°¡ »ý±æ°Í °°Àºµ¥¿ä?
°í¼ö´ÔµéÀº À¯Àú°ü¸® ¹× ID»ý¼ºÀ» ¾î¶»°Ô ÇϽóª¿ä? ±×¸®°í ÇѸíÀÇ
À¯Àú¿¡°Ô ÀÚ½ÅÀÇ ÀÏÁ¤¿µ¿ª±îÁöÀÇ ´Ù¸¥ À¯ÀúÁ¤º¸¸¦ º¸³¾¶§ ´Ù¸¥ À¯Àú
Á¤º¸¸¦ ¾î¶² ½ÄÀ¸·Î °Ë»öÇϽóª¿ä?
È¿°úÀûÀÎ À¯Àú°ü¸®ÀÇ Á¶¾ðÀ» ¹Ù¶ø´Ï´Ù.
µðºñ¸¦ ¾²¸é °£´ÜÇÏ°Ô ÇØ°áµË´Ï´Ù.
¹°·Ð ÇÁ·Î±×·¥ÀûÀ¸·Î ±¸ÇöÇØµµ »ó°ü¾øÁö¸¸.
Á» ¾î´ÀÁ¤µµ Áß±Ô¸ð ÀÌ»óÀÇ µðºñ¿¡¼± ÀÚµ¿À¸·Î Áõ°¡ÇÏ´Â
Çʵ带 ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¸°Ô ÇØ¼­ Áߺ¹ÇÏÁö ¾Ê´Â ID°ªÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
±×·¯´Ù°¡ À¯Àú ¾ÆÀ̵𸦠Áö¿ì°Å³ª ÇØ¼­ °è¼ÓÇØ¼­
ÇѰ谪ÀÌ»óÀ¸·Î Áõ°¡ ÇÑ´Ù¸é ³»ºÎÀûÀ¸·Î Á¤¸®ÇØÁÖ´Â
ÇÁ·Î±×·¥À» Â¥¼­ ÇØ°áÇØ Áִ°ÅÁÒ.
Áß°£¿¡ ºó°ªÀ» ã¾Æ¼­ ³Ö¾îÁÖ´Â °ÍÀº Á» ½Å°æ ¾µ ºÎºÐÀÌ ÀÖÁÒ.
Â÷¶ó¸® ¼­ºñ½º Á¤°Ë ½Ã°£¿¡ Á¤¸®ÇÏ´Â ÇÁ·Î±×·¥À» µ¹·ÁÁÖ´Â
°ÍÀÌ ÁÁÀº ¹æ¹ýÀ̶ó°í »ý°¢ ÇÏ°í ±×·¸°Ô ±¸ÇöÇϰí ÀÖ½À´Ï´Ù.
__
À̰游
PS.
Effort without results is just self-satisfying bunk.
¸®´ª½º³ª BSD ȯ°æ¿¡ sendfile() À̶õ call ÀÌ ÀÖ´õ±º¿ä. FTP µ¥¸ó¿¡¼­
Á÷Á¢ ÀûÀ¸·Î ÆÄÀÏ Àü¼ÛÇÒ ¶§ »ç¿ëµÇ´Â ÄÝÀε¥, ³ë°¡´Ù·Î ¸¸µé¾ú´ø ÄÚµå
º¸´Ù È¿À²ÀÌ Àß ³ª¿Í¼­ È­°¡ ³ª³×¿ä. (-_- ¾Æ¹«·¡µµ ·Î¿ì ·¹º§¿¡¼­ ³Ñ
¾î°¡´Â ÄÚµå´Ï..)

´ÙÀ½Àº sendfile manpage ÀÔ´Ï´Ù.

NAME
sendfile - transfer data between file descriptors

SYNOPSIS
#include <unistd.h>

intsendfile(intout_fd,intin_fd,off_t*offset,size_tcount)
DESCRIPTION
This call copies data between file descriptor and another file descri
p
tor or socket. in_fd should be a file
descriptor opened for reading. out_fd should be a descriptor opened for

writing or a connected socket. offset
is a pointer to variable holding the input file pointer position fr
o
m which sendfile(2) will start reading
data. After sendfile finished this variable will be set to the offset of

the byte following the last byte that
was read. count is the number of bytes to copy between file descriptors
¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡
.


NOTES
Sendfile does not modify the current file pointer of in_fd, but does for

out_fd.

If you plan to use sendfile for sending files to a TCP socket, but ne
e
d to send some header data in front of
the file contents, please refer to the TCP_CORK option in tcp(4) to tune

performance. 
RETURN VALUE
If the transfer was succeeded, the number of bytes written to out_fd is
r
eturned. On error, -1 is returned, and
errno is set appropriately.

ERRORS
EBADF Input file was not opened for reading or output file was not ope
n
ed for writing.

EINVAL Descriptor is not valid or locked.

ENOMEM Insufficient memory for reading from in_fd. 
EIO Unspecified error while reading from in_fd.

VERSIONS
sendfile is a new feature in Linux 2.2.

Other Unixes often implement sendfile with different semantics a
n
d prototypes. It should not be used in
portable programs.
ƯÁ¤ ¼­¹ö ÇÁ·Î±×·¥ÀÇ Æ÷Æ®¸¦ ±¸ÇÒ¼ö ÀÖ³ª¿ä?
¿¹¸¦ µé¾î °£´ÜÇÑ Ã¤ÆÃ ¼­¹ö°¡ ÀÖÀ»¶§ ÀÌ ÇÁ·Î±×·¥ÀÇ
Æ÷Æ®¹øÈ£¸¦ ¾Ë¼ö ÀÖ´Â ¹æ¹ýÀÌ ÀÖ³ª¿ä?

´äº¯ ºÎʵ叮¸ç..
µ¹±¸Áö..
hithere@hitel.net