¼¹ö¸¦ ¸¸µé¾î¼ µ¹¸®´Ù º¸¸é Ŭ¶óÀÌ¾ðÆ® ÃøÀº ÀÌ¹Ì ²÷¾îÁ³´Âµ¥
¼¹ö¿¡¼´Â ¿¬°á ÇØÁ¦¸¦ ÀÎ½Ä ¸øÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¸é ³×Æ®¿öÅ© ¼±À» ³×Æ®¿öÅ© Ä«µå¿¡¼ »°À» °æ¿ì¿Í °°Àº
Çö»óÀÌÁÒ.
ÇØ°áÃ¥À¸·Î ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®°£¿¡ ÀÏÁ¤ ½Ã°£ °£°Ý¸¶´Ù Åë½ÅÀ»
ÇØ¼ ÀÀ´äÀÌ ¾øÀ¸¸é ¿¬°áÀ» °Á¦ÀûÀ¸·Î ²÷´Â ¹æ½ÄÀ» ÃëÇϰí Àִµ¥
¼ÒÄÏ ·¹º§¿¡¼ À̸¦ ÀνÄÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾øÀ»±î¿ä?
°í¼ö´ÔµéÀÇ Á¶¾ð ºÎŹÇÕ´Ï´Ù.
¾È³çÇϼ¼¿ä..
¾Æ¹öÁö¾ÆµÚ¸¦ ºô·Á¾²´Â Áß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