¾È³çÇϼ¼¿ä. ¹èƲµå·¡°ïÀ» °³¹ßÇÑ »ç¶÷ÀÔ´Ï´Ù.
°³¹ßÂø¼ö¿¡¼­ ¼­ºñ½º ¿ÀDZîÁö ¾à 1³â ¹ÝÁ¤µµ°¡ ¼Ò¿äµÇ¾ú´Âµ¥ ±× °úÁ¤
À» ±×³É ³ª¿­½ÄÀ¸·Î ½Ã°£³¯¶§¸¶´Ù Æ´Æ´È÷ ¿Ã¸®µµ·Ï ÇÒ²²¿ä.
³ª¸§´ë·Î °³¹ßÁß ¾òÀº know-how³ª ÇÁ·Î±×·¥ ·çƾµµ »ðÀÔÇϵµ·Ï ÇϰڽÀ
´Ï´Ù.

1. ¹èƲµå·¡°ïÀ» ¸¸µé°ÔµÈ µ¿±â

- °³ÀÎÀûÀ¸·Î ³×Æ®¿öÅ© ¾×¼ÇÀ» ¼±È£Çϴµ¥ ´ëºÐºÐÀÌ RPGÇüÅ·Î
¾×¼ÇÀ» ã¾Æº¸±â Èûµë(SubSpace, NetWar, Tanarus ?, °ÇüÀ̽º,
Æ÷Æ®¸®½ºµî)

- °ÇüÀ̽º¸¦ Ç÷¹ÀÌ Çϸ鼭 ¾÷±×·¹À̵带 ±â´Ù¸®´Ù ÁöÃÆÀ½(^.^)
¿Ö ¾÷±×·¹ÀÌµé ¾ÈÇϽôÂÁö, ÅÊÅ©, ¹«±â, ¸ÊÁ» °è¼Ó Ãß°¡Çϸé Àç¹Ì³ª°Ô
°è¼Ó ÇÒÅÙµ¥.

- ´Ùµé RPG¸¦ °³¹ßÇϰí Àֱ⠶§¹®¿¡ ½ÃÀå°ø·«¿¡ À¯¸®ÇÔ(°æÀï»ó´ë°¡ ÀûÀ½?)

- °³ÀÎÀûÀ¸·Î ¸¸µé±â°¡ RPGº¸´Ù ¿ëÀÌÇÔ.

- ÀÏ¹Ý CD-ROM °ÔÀÓº¸´Ù ¸¶ÄÉÆÃÀÌ À¯¸®ÇÏ¸ç ½ÃÀ强ÀÌ Å©´Ù°í ÆÇ´Ü.
(Ưº°ÇÑ ±¤°íºñ, ÆÇÃ˺ñ°¡ ¾øÀ½)

- ±âŸ µîµî


2. ¹èƲµå·¡°ï °ÔÀÓ ±âȹ½Ã °í·ÁµÈ »çÇ×

- ij¸¯ÅÍÀÇ À̵¿¿¡ ¼Óµµ, °¡¼Óµµ, °ü¼ºÀ» ºÎ¿©ÇÏ¿© ¹ÝÀÀÀÌ ¹Ù·Î¹Ù·Î
³ªÅ¸³ªÁö ¾Êµµ·Ï °ÔÀÓÀ» µðÀÚÀÎ(µ¿±âÈ­¸¦ ÇÏ±â ÆíÇÔ).

- Çѹ濡 Á×´ÂÇüÅÂÀÇ °ÔÀÓÀº ¹èÁ¦ÇÑ´Ù. (¾îµð¼­´Â ¸Â¾Ò´Âµ¥ ¾îµð¼­´Â
¾È¸Â´Â Çö»óÀÌ ¹ß»ýÇØµµ Å« ¹«¸®°¡ ¾øÀ½?, ¿¡³ÊÁö °³³ä)

- ÃÖ´ëÇÑ Áö¿ªÀ» ±¸ºÐÇÏ¿© °°Àº Áö¿ªÀÇ »ç¿ëÀÚ°¡ ¾Æ´Ï¶ó¸é Á¤º¸¸¦ °øÀ¯ÇÏÁö
¾Ê°ÔÇÏ¿© Æ®·¡ÇÈÀ» ÁÙÀÓ.

- Áß°£ ÇÁ·¹ÀÓÀ» ÀÚµ¿À¸·Î ó¸®Çϵµ·Ï ÇÏ¿© ºó¹øÇÑ µ¥ÀÌŸ Àü¼ÛÀ» ÇÇÇÑ´Ù.

- ÀÎÅÍÆäÀ̽º´Â Űº¸µå·Î ¼³Á¤(1°³ÀÇ Ä³¸¯Å͸¸ Á¶Á¤ÇÏ´Â ¾×¼Ç°ÔÀÓÀ̹ǷÎ
¸¶¿ì½º·Î Çϸé Áö·çÇØÁú °¡´É¼ºÀÌ ÀÖÀ½. ´ÜÁ¡À¸·Î ¸¹Àº ¹æÇâÀÌ ÇÊ¿äÇϰÔ
µÊ 36¹æÇâ)

- °¡´ÉÇÑ ¹«±âÀÇ Á¾·ù¸¦ ±¤¹üÀ§ÇÏ°Ô ÇÇÇØ¸¦ ÁÖ´Â Á¾·ù(Áö·Ú, ÆøÅºµî)¸¦
¼³Á¤ÇÏ¿© Á¤È®ÇÑ °ªÀ» ÇÇÇÑ´Ù.


3. °ÔÀÓÁ¦ÀÛ

- ij¸¯ÅÍ ¼³Á¤. ·Îº¿°ú °ø·æÁß °í¹Î. ¿ì¸®³ª¶ó °ÔÀÓ¿¬·ÉÃþÀÌ ·Îº¿º¸´Ù´Â
°ø·æÀ» ´õ ÁÁ¾ÆÇÔ. ·Îº¿Àº Á» ½Ä»óÇÑ ´À³¦ÀÌ ÀÖÀ½. ¿ì¸®³ª¶ó¿¡¼­ ¸ÞÅ©
¿ö¸®¾î, Çìºñ±â¾î °°Àº °ÔÀÓÀÌ Àß ¾È¸ÔÇûÀ½. À½... °ø·æÀÌ ÁÁ±äÇѵ¥
°ø·æµµ Á» À¯Ä¡Çѵ¥... ¾Æ... °ø·æÀ̶ó ÇÏÁö ¸»°í µå·¡°ïÀ̶ó ÇØ¾ßÁö.

- ¸Ê ¿¡µðÅÍ Á¦ÀÛ : 32x32·Î Á¦ÀÛ. ´Ü ¸ðµç À̹ÌÁö´Â 64x64·Î ¸¸µé¾î
50%Ãà¼Ò ÇØ¼­ »ç¿ë. Á» ´õ ¼¼¹ÐÇÑ À̹ÌÁö¸¦ ¾òÀ½. ¸Ê palette¿¡ 120
colorÇÒ´ç. 8°³´Â palette animation¿¡ »ç¿ëµÊ. ÃÑ 128 color.
¸Ê ¼Ò½º´Â ¿¡´Ï¸ÞÀÌÅÍ¿¡¼­ 2D·Î Á¦ÀÛÇÔ.

- ij¸¯ÅÍ Á¦ÀÛ : Űº¸µå¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¸ðµç µ¿ÀÛÀ» 36¹æÇâÀ¸·Î
Á¦ÀÛ.(¿¡´Ï¸ÞÀÌ¼Ç µ¥ÀÌŸ´Â 19¹æÇâÀ¸·Î ¼öÁ÷À¸·Î Ä«ÇÇÇØ¼­ »ç¿ë)
Ƽ¶ó³ë, ·¦ÅÍ´Â 3D studio·Î Á¦ÀÛ.(Á¦ÀÛ µµÁß °³¹ßÀÚ ±×¸¸µÒ)
ºê¶óŰ¿À, Å×¶ó³ë, Æ®¸®¼¼¶ó´Â ÀÏ·ºÆ®¸¯ À̹ÌÁö(Mac)À¸·Î Á¦ÀÛ.

- ÆÐ³Î(Pannel), ¾ÆÀÌÄÜ, ÃʱâÈ­¸é Á¦ÀÛ.

- alpha blending, overlap È¿°ú Ãß°¡.
(256¿¡¼­ overlap½ÃŰ´Â°Ô ºÒ°¡´ÉÇÑÁÙ ¾Ë°í ÀÖ¾ú´Âµ¥ netwar¿¡¼­
±×¸²ÀÚ, Æø¹ßÀ» ½Ç½Ã°£ overlapÀ¸·Î ±¸ÇöÇÏ´õ¶ó°í¿ä. ±×·¡¼­ 2ÁÖ°£
°í¹ÎÇÑ ³¡¿¡ °Ü¿ì ±¸Çö. »ý°¢º¸´Ù È¿°úµµ ±¦Âú°í, ½±´õ±º¿ä. ½Ã°£
µÇ¸é ÀÌ ºÎºÐµµ ¿Ã¸±²²¿ä. -> ´Ùµé ¾Ë°í ÀÖ³ª?)

- ¹«±â, ¾ÆÀÌÅÛ Ãß°¡

- ¹ß¶õ½º Á¶Àý.

4. ÇÁ·ÎÅäÄÝÀÇ ¼±ÅÃ

stand aloneÇü °ÔÀÓÀº ¸¹ÀÌ °³¹ßÇØ º¸¾Ò¾îµµ ³×Æ®¿öÅ© ºÎºÐÀº óÀ½À̶ó
½ÃÇàÂø¿À¸¦ ¸¹ÀÌ °Þ¾ú½À´Ï´Ù.

- TCP/IP : º¸³»°í ¹Þ´Â´Ù. 100¸í¿¡°Ô º¸³»·Á¸é °¢ 100¸í¿¡°Ô ¸ðµÎ º¸³»°í
¹Þ´Â´Ù.

- UDP : 100¸íÀ̳ª 1000¸í¿¡°Ô º¸³»±â À§ÇØ 1¹ø¸¸ º¸³½´Ù. ÇÁ·ÎÅäÄÝ °£´Ü,
Çì´õ ªÀ½. (¿Ö À̰ɷΠ°ÔÀÓÀ» ¾È¸¸µéÁö?)

* stand-aloneÇü °ÔÀÓÀº ¸¹ÀÌ ¸¸µé¾î º¸¾ÒÁö¸¸, ³×Æ®¿öÅ© ÂÊÀ¸·Î´Â ¹®¿ÜÇÑ
»óÅ¿¡¼­ °³¹ßÀ» ½ÃÀÛÇßÀ½.
¿ì¸®³ª¶ó °³¹ßÀÚµéÀÌ ¸¹ÀÌ ¾²´Â ¹æ½Ä - ¸¸µé¸é¼­ °øºÎÇÑ´Ù.

- UDP·Î °³¹ßÀ» ¿Ï·áÇÑ ÈÄ, ÀÎÅͳݻóÀ¸·Î Å×½ºÆ®.
°£È¤ ƯÁ¤ ISP¿¡¼­´Â ¶ó¿ìÅÍ¿¡¼­ UDPÆÐŶÀ» Åë°ú½ÃŰÁö ¾Ê´Â´Ù´Â »ç½ÇÀ»
¹ß°ßÇÔ. (Á¤È®ÇѰÇÁö ¸ð¸£°Ú´Âµ¥ INETÀ¸·Î ¼­¹ö¸¦ õ¸®¾ÈÀ¸·Î ÀÎÅͳÝÀ»
»ç¿ëÇÏ¿© Å×½ºÆ® ÇßÀ½). ºó¹øÇÑ µ¥ÀÌŸ ¹ß»ý½Ã ÆÐŶÀ» ÀÚÁÖ Àоî¹ö¸®´Â
¹®Á¦Á¡ ¹ß»ý. ¾ÕµÚ ÆÐŶÀÌ ¼ø¼­¾øÀÌ ¸· µµÂøÇÔ.

- °ÔÁ¦µ¿ÀÇ ³×Æ®¿öÅ© °Ô½ÃÆÇ Á¤µ¶.³×Æ®¿öÅ© °ÔÀÓÀº ´ëºÎºÐ TCP/IP¸¦ »ç¿ë
ÇÑ´Ù´Â »ç½ÇÀ» ¹ß°ß.

- TCP/IP¿¡ ´ëÇØ °øºÎ(º¼·ý1, º¼·ý2 Á¤µ¶)

- TCP/IP·Î ³×Æ®¿öÅ© ºÎºÐ Àü¸é ¼öÁ¤

ÇÁ·ÎÅäÄÝÀ» UDP·Î »ç¿ëÇϴ°ÍÀº ¹®Á¦°¡ ÀÖÁö ¾Ê³ª »ý°¢µÇ³×¿ä. ºÐ¸íÈ÷ Àå
Á¡Àº ¸¹Àºµ¥ ºÒ¾È ÇØ¼­. Â÷¶ó¸® UDP´Â TCP/IP¿Í º´ÇàÇØ¼­ äÆÃµ¥ÀÌŸ °°ÀÌ
Àоî¹ö·Áµµ Áß¿äÇÏÁö ¾Ê´Â Á¤º¸¿¡ »ç¿ëÇϴ°ÍÀÌ ÁÁÀ»µí Çϳ׿ä. ±×·¯·Á¸é
socketÀ» 2°³ ¿­¾î¾ß °ÚÁö¿ä. ¹èƲ³ÝÀº UDP·Î »ç¿ëÀÚ »óŸ¦ °Ë»çÇÏ´Â°Í °°´ø
µ¥. ±×·±ÂÊÀ¸·Î ½áµµ ÁÁÀ»µí Çϰí.


´ÙÀ½¿¡´Â ¼­¹ö ÇÁ·Î±×·¥À» ¸¸µé¾î ³ª°£ °úÁ¤À» ½á º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

»ý°¢º¸´Ù ±Û¾²±â°¡ ½±Áö ¾Ê³×¿ä. ³ª¸§´ë·Î ¿­½ÉÈ÷ ¾´°Çµ¥. Àå³­ºñ½ÁÇÏ°Ô µÈ°Å
°°±âµµ Çϰí. (ÀÌÁ¦ Á» ROMÁ·¿¡¼­ ¹þ¾î³ª·Á³ª?)

¾È³çÇϼ¼¿ä. ¹èƲµå·¡°ïÀ» °³¹ßÇÑ »ç¶÷ÀÔ´Ï´Ù.
¿äÁò ¹öÁ¯¾÷¶§¹®¿¡ Á¤½ÅÀÌ ¾ø¾î¼­ ±ÛÀÌ ´Ê¾îÁ³½À´Ï´Ù.

¿ª½Ã ¹®Àå·ÂÀÌ ºÎÁ·ÇÏ´Ï ³ª¿­½ÄÀ¸·Î ¾²°Ú½À´Ï´Ù.

[1Â÷¹öÁ¯]

- mode : non-blocking

- protocol type :

command type - 1 byte
length - 2 byte
message - length


command typeÀÇ Á¾·ù´Â ´ë·«

CMD_NONE 0
CMD_ACCESS_LOGIN 1
CMD_ACCEPT_LOGIN 2
CMD_USER_ADD 3
CMD_USER_REMOVE 4
CMD_DINO_SET_DATA 5
CMD_DINO_DIE 6
CMD_TEXT_DATA 7
CMD_LOST_CONNECTION 127

¿Í °°Àº ÇüÅÂÀ̸ç ÃÑ 43°³¸¦ »ç¿ëÇß½À´Ï´Ù.
(´Ù °ø°³Çϸé ÇØÅ·ÀÇ ¿ì·Á°¡ ...)
commandÁß °¡ÀåÁß¿äÇÑ CMD_DINO_SET_DATA(À§Ä¡Àü¼Û)Àº 1ÃÊ¿¡ 2¹ø ¹ß»ý.

- server env : dual-pentium 300Mhz, 512RAM
NT4.0(service pack3)

- send/receive : ¹ß»ýµÇ´Â event¸¦ ¹Ù·Î¹Ù·Î ó¸®


´ë·« À§¿Í°°ÀÌ ¸¸µé¾î¼­ ³»ºÎ ÀÎÆ®¶ó³Ý¿¡¼­ 4¸íÀ̼­ Å×½ºÆ® ½Ç½ÃÇÔ.

°á°ú : °ø·æµéÀÌ ÇÑÂü ¸ØÃß¾î ÀÖ´Ù°¡ ÇѼø°£¿¡ ÁÖ·ç·è À̵¿, ¸ØÃß¾ú´Ù°¡
ÁÖ·ç·è À̵¿À» ¹Ýº¹ÇÏ¿© °ÔÀÓÀÌ ÁøÇàÀÌ ¾ÈµÊ.

¿øÀÎ : ¼ÒÄÏÀÚü¿¡¼­ Àü¼ÛÇØ¾ß ÇÏ´Â µ¥ÀÌŸ°¡ ¾ÆÁÖ ÀûÀº°æ¿ì ¹öÆÛ¸µÀ»
Çϱ⶧¹®À̶ó°í »ý°¢µÊ.

¹æ¾È : ÀÏÁ¤ÀÌ»óÀº ¹öÆÛ¸µÀ» ÇÑ ÈÄ µ¥ÀÌŸ Àü¼Û.

[2Â÷¹öÁ¯]

- send/receive : ¹ß»ýµÇ´Â event¸¦ ÀÚü ¹öÆÛ¿¡ ¹öÆÛ¸µ. ¸ðµç command´Â
¹öÆÛ¿¡¼­ ó¸®

°á°ú : jumping°ú latency°¡ ¹ß»ýµÊ.

¿øÀÎ : À§Ä¡ µ¥ÀÌŸ¸¦ 1ÃÊ¿¡ 2¹ø ¹ß»ý½ÃÄѸç ÀÚü ¹öÆÛ¸µÀ» ÇÑÈÄ Ã³¸®Çϱâ
¶§¹®¿¡ ´ç¿¬ÇÑ °á°ú·Î »ý°¢µÊ.

¹æ¾È : ³×Æ®¿öÅ©»ó¿¡¼­´Â latency¸¦ ÇÇÇÒ ¼ö ¾øÀ¸¹Ç·Î µ¿±âÈ­¸¦ ½Ã۱â
À§Çؼ­ prediction(¿¹Ãø) systemÀ» µµÀÔ

--------------------------------------------------------------------------

[3Â÷¹öÁ¯]

- global time ¼³Á¤ : ¼­¹ö½Ã°£À» ÇÒ´ç¹ÞÀºÈÄ 3¹øÀÇ pingÀ» ÅëÇØ
¸ðµç client°¡ °øÀ¯ÇÒ ¼ö ÀÖ´Â timeÀ» ¼³Á¤.

À§Ä¡ µ¥ÀÌŸ¿¡ global timeÀ» Æ÷ÇÔ½ÃŲ´Ù. µ¥ÀÌŸ¸¦ Àü¼Û¹ÞÀº °¢ client´Â
old global time°ú new global timeÀ» ºñ±³ÇÏ¿© ¸îÇÁ·¹ÀÓÈÄ¿¡ Àü´Þ¹ÞÀº
µ¥ÀÌŸÀÎÁö¸¦ ÆÄ¾ÇÇÏ¿© ±× ÇÁ·¹ÀÓ¸¸Å­ ¿¹ÃøÇÏ¿© À§Ä¡ Á¶Á¤.
±× À§Ä¡°ª°ú ÇöÀçÀÇ À§Ä¡°ªÀ» °è»êµÈ ÇÁ·¹ÀÓÀ¸·Î ³ª´©¾î ÇÁ·¹ÀÓ´ç À̵¿Çؾß
ÇÒ ¹æÇâ, pixel¼ö¸¦ Á¤ÇÑÈÄ Àû´çÇÑ °¡¼Óµµ¸¦ ºÎ¿©ÇÑ´Ù.(¿¡±¸ º¹Àâ)
ÀÌ·¸°Ô ÇØµµ latency´Â ¹ß»ýÇϳª ¾î´ÀÁ¤µµ´Â º¸¿ÏÀÌ °¡´ÉÇÔ.


- send/receive : ¹ß»ýµÇ´Â event¸¦ ÀÚü ¹öÆÛ¿¡ ¹öÆÛ¸µ. ¸ðµç command´Â
¹öÆÛ¿¡¼­ ó¸®

°á°ú : ¾î´ÀÁ¤µµ´Â ÀÚ¿¬½º·¯¿ò. ¸ØÃãÇö»óÀº ¿©ÀüÈ÷ ¹ß»ý.

¿øÀÎ : Á¤È®È÷ 1ÃÊ¿¡ 2¹ø¾¿ µ¥ÀÌŸ¸¦ Àü¼ÛÇØµµ ³×Æ®¿öÅ© Ư¼º»ó ¸Å¹ø 0.5¿¡ Çѹø¾¿
µ¥ÀÌŸ°¡ ¿ÀÁö ¾Ê°í, 3ÃÊ, 0.1ÃÊ, 0.4Ãʾ¿ ÀÓÀÇ·Î receiveµÊ.

¹æ¾È : ½ÇÁ¦ µ¥ÀÌŸ°¡ ¿À±â Àü±îÁö ÇöÀçÀÇ ÁøÇà¹æÇâÀ¸·Î °¡»óÀ¸·Î À̵¿½ÃŲÈÄ(¸ØÃã
¾øÀÌ), ½ÇÁ¦ µ¥ÀÌŸ°¡ ¿ÔÀ»¶§ ¿ÀÂ÷¸¦ °è»êÇÏ¿© º¸Á¤Çϸ鼭 ¸ñÇ¥Á¡À¸·Î À̵¿½ÃÅ´.

-> ¿ä ºÎºÐ¿¡¼­ ½Ã°£À» ¸¹ÀÌ Àâ¾Æ ¸Ô¾úÀ½.


[4Â÷ ¹öÁ¯]

- DB ÇÁ·Î±×·¥ Á¦ÀÛ : ´Ü¼øÇÑ ISAM file·Î Á¦ÀÛ. (ÀÚü DB ?)

DB±îÁö ¸¸µçÈÄ NetsGo ¼­ºñ½º ¿ÀÇÂ

°á°ú : ³­¸®°¡ ³µÀ½. 3Àϵ¿¾È 2000¸íÀÌ ´Ù¿î·Îµå ¹Þ¾Æ°¨. µ¿½ÃÁ¢¼ÓÀÚ 100¸íÀÌ»ó.
¼­¹ö´Â »ç¿ëÀÚ°¡ 10¸í¸¸ ³Ñ±â¸é °è¼ÓÀûÀ¸·Î ƨ°Ü³¿. 1¸í´ç 1ºÐÀ» ¸ø¹öÆÀ.

¿øÀÎ : Å×½ºÆ®¾øÀÌ ¹Ù·Î ¿ÀÇÂÇÑ °á°ú·Î »ý°¢µÊ.
Àü¿ë¼± ¿ë·®ÀÌ ÅξøÀ½. 56K »ç¿ë. ÃÖ´ëÄ¡°¡ 80%·Î ¼³Á¤µÇ¾îÀÖÀ¸³ª ±×·¡ÇÁ°¡
°íÀú
¾øÀÌ 120%¿¡¼­ ¼öÆò¼±À» 3Àϵ¿¾È °è¼Ó À¯ÁöµÊ. error trafficÀÌ °è¼Ó
¹ß»ýµÊ.

¹æ¾È : ƨ±â´Â ¿øÀÎ ÆÄ¾Ç. Àü¿ë¼± ¿ë·® 512K·Î Áõ¼³.

´ÙÀ½¿¡´Â 4Â÷ ¹öÁ¯¿¡ ÀÌ¾î °è¼Ó ¼­¹ö ÇÁ·Î±×·¥À» ¸¸µé¾î ³ª°£ °úÁ¤°ú ¾à°£ÀÇ ¼Ò½º¸¦
°ø°³Çϵµ·Ï Çϰí, À̾ ´Ù¸¥ Åë½Å»ç¿¡ ¼­ºñ½º¸¦ ¿ÀÇÂÇϱâ À§ÇÑ ¹®Á¦Á¡°ú °úÁ¤À»
¿¬ÀçÇØ ³ª°¡°Ú½À´Ï´Ù.

µÎ¼­¾øÀÌ ³ª¿­¸¸ ÇØ¼­ Àǹ̰¡ Àü´ÞµÉ±î ¸ð¸£°Ú³×¿ä.

¾È³çÇϼ¼¿ä.

¾Æ·¡ ¸îºÐÀÌ Áú¹®À» Çϼ̴µ¥, ÀÏ´Ü °£´ÜÇÑ ´äº¯À» ÇϰڽÀ´Ï´Ù.

1. ÇöÀç »ç¿ëÇÏ´Â Àü¿ë¼± :

³×Ã÷°í - 512K
ä³Î¾ÆÀÌ - 256K
À¯´ÏÅÚ - 512K
ÀÎÅÍ³Ý - 512K

¿ä·¸°Ô 4°³¸¦ »ç¿ëÇÕ´Ï´Ù.

2. 1Â÷~4Â÷¹öÁ¯±îÁöÀÇ °³¹ß±â°£

¾à 2°³¿ùÁ¤µµ ¼Ò¿äµÇ¾ú½À´Ï´Ù¸¸, ´Ù¸¥ ÀϵéÀ» º´ÇàÇϸ鼭 ÇÏ¿´±â
¶§¹®¿¡ Ç®·Î ÀÛ¾÷À» Çß´Ù¸é ¾à 1°³¿ù Á¤µµ°¡ °É·ÈÀ»µí ÇÕ´Ï´Ù.

3. ÇöÀç Æò±Õ Á¢¼Ó Àοø

µé¾î¿Í º¸½Ã¸é ¾Ð´Ï´Ù.

±×·³ ¿¬À縦 °è¼ÓÇϵµ·Ï ÇϰڽÀ´Ï´Ù.

[5Â÷ ¹öÁ¯]

¼Ò½º °ËÅä. ¸î°¡Áö ¹ö±× ¼öÁ¤. ÃÖÀûÈ­ ÇÒ ºÎºÐÀ» ¾ÆÁÖ ¸¹ÀÌ ¹ß°ß ÇØ³¿.
Àü¿ë¼± 512k·Î Áõ¼³,
½ÉÇÏ°Ô Æ¨±â´Â ¹®Á¦¿¡ ½Ç¸ÁÇÑ »ç¿ëÀÚµéÀÌ ¸¹ÀÌ ºüÁ®³ª°¨
(Æò±Õ 20~30¸í¼±À¸·Î °Ý°¨)
³×Ã÷°í °Ô½ÃÆÇÀÇ 1~100¹ø±îÁö°¡ ºñ³­ÀÇ ±Û·Î °¡µæÂü.
°ÔÀÓµµÁß¿¡ ƨ±ä´Ù´Â ¹®ÀÇ ¸ÞÀÏÀÌ ÇÏ·ç¿¡ 20Åë ÀÌ»ó¾¿ µµÂø.

* ¿Â¶óÀÎ °ÔÀÓÀº »ç¿ëÀÚµéÀÌ °ü½ÉÀÌ ¸¹±â ¶§¹®¿¡ Ãʱ⿡ ¼­ºñ½º¸¦ ¿ÀÇÂÇϸé
°ü½ÉÀÖ´Â »ç¿ëÀÚµéÀº ¸¹ÀÌµé ¿Íº¸Áö¸¸ À̶§ »ç¿ëÀÚµéÀ» ½Ç¸Á½Ã۸é(ƨ°Ü ³ª°£
´Ù´øÁö..) ´Ù½Ã µ¹¾Æ ¿À°Ô ¸¸µå´Âµ¥ ¸¹Àº ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
ÀÚü Å×½ºÆ®¸¦ ¸¹ÀÌ ½Ç½ÃÇØ¼­ ¾ÈÁ¤È­¸¦ ½ÃŲÈÄ ¿ÀÇÂÇϴ°ÍÀÌ ¿ÇÁö ¾Ê³ª
»ý°¢µË´Ï´Ù.

»ç¿ëÀÚ°¡ ƨ±â´Â ¸ðµç ¿øÀÎÀÌ Àü¿ë¼± ¿ë·®ÀÌ ¹®Á¦°¡ ÀÖ´Ù°í »ý°¢Çߴµ¥
¼±À» ´Ã·Áµµ ÇØ°áÀÌ ¾ÈµÇÀÚ ´çȲÇÏ¸ç ¼­µÎ¸£±â ½ÃÀÛÇÔ. (¿ø·¡ ¼º°ÝÀÌ ³«ÃµÀû
ÀÌ¶ó ¿Ø¸¸ÇÑ ÀÏ¿¡ ¼­µÎ¸£Áö ¾ÊÀ½)

¼± Æ®·¡ÇÈ (20~30%, error traffic 0%)

ºÎ·ªºÎ·ª 6Â÷¹öÁ¯ Á¦ÀÛ

[6Â÷ ¹öÁ¯]

- ¸ÞÀÎ ·çÇÁ

while(1)
{
ActiveCommand(short int Num)
{
ÀÐÀ» µ¥ÀÌŸ°¡ ÀÖ´ÂÁö ¼ÒÄÏ °Ë»ç
µ¥ÀÌŸÀÇ ±æÀ̸¦ receive
½ÇÁ¦ µ¥ÀÌŸ receive
command ó¸® (µ¥ÀÌŸ=command)
}

¸¸¾à º¸³¾ µ¥ÀÌŸ°¡ ÀÖ´Ù¸é
SendWriteBuffer(short int Num)
{
// º¸³¾ µ¥ÀÌŸÀÇ ±æÀ̸¦ ´õÇÑÈÄ ½ÇÁ¦·Î write
char Buff[WRITE_BUFF_MAX+3];

Buff[0] = LOBYTE((WORD)Len);
Buff[1] = HIBYTE((WORD)Len);

memcpy(&Buff[2], CLIENT[Num].WriteBuffer, CLIENT[Num].WriteBuffSize);
Len += 2;

CLIENT[Num].Tcp.Write(Buff, Len);
}

ConnectionCheck(void)
{
ÇöÀç Á¢¼ÓµÇ¾î ÀÖ´Â »ç¿ëÀÚÀÇ trafficÀ» °Ë»ç
send, write »óŰ¡ 5ÃÊÀÌ»ó 0À̸é disconnect·Î °£ÁÖ
}
}

´Ü¼øÇÏÁÒ?

- Receive

µ¥ÀÌŸ´Â receiveµÉ¶§ TCP/IP ¸Þ¼¼Áö¸¦ ¹Þ°Ô µÇ°í

case WMU_DONE_READING :
if(DoneReading((SOCKET)lParam) == FALSE)
{
AddTextFile_ERROR("Error Done Reading");
LostConnectionFromSocket((SOCKET)lParam);
}
break;

À» ÅëÇØ °¢°¢ÀÇ ¹öÆÛ¿¡ ´©Àû½ÃÄÑµÎ°Ô µË´Ï´Ù.

- Send

void CServer::PutByte(short int Num, char Data)
{
if(CLIENT[Num].WriteBuffSize >= WRITE_BUFF_MAX-2)
{
LostConnectionFromNum(Num);
return;
}

CLIENT[Num].WriteBuffer[CLIENT[Num].WriteBuffSize] = Data;
CLIENT[Num].WriteBuffSize ++;
};

void CServer::PutWord(short int Num, short int Data)
void CServer::PutLong(short int Num, long Data)
void CServer::PutBuffer(short int Num, char *Buff, int Size)

ÀÇ ÇüÅ·Π½ÇÁ¦·Î µ¥ÀÌŸ¸¦ º¸³»Áö ¾Ê°í ¹öÆÛ¿¡ ´©Àû½ÃŲÈÄ
·çÇÁ¸¦ Çѹø µ¹¶§¸¶´Ù ¸ð¾Æ¼­ ½ÇÁ¦·Î send¸¦ ó¸®ÇÔ

// ½ÇÁ¦ write ºÎºÐ
BOOL CTcp::Write(LPVOID pData, int nLen)
{
int nBytesSent;

if(pData == NULL || nLen <= 0)
return(TRUE);

nBytesSent = send(m_s, (LPCSTR)pData, nLen, 0);
if(nBytesSent == SOCKET_ERROR || nBytesSent != nLen)
{
m_nLastError = WSAGetLastError();
PostMessage(g_hWnd, WMU_TCP_MESSAGE, WMU_ERROR_WRITING, (LPARAM)m_s);
return(FALSE);
}

PostMessage(g_hWnd, WMU_TCP_MESSAGE, WMU_DONE_WRITING, (LPARAM)m_s);

return(TRUE);
};

À§¿Í °°Àº ¹æ½ÄÀ¸·Î ÇßÀ»°æ¿ì »ç¶÷ÀÌ ¸¹À» °æ¿ì (30~40¸í, Àû³ª ?)¿¡´Â
´õ ½ÉÇϰí, »ç¶÷ÀÌ ÀûÀ» °æ¿ì(5~10¸í)¿¡µµ ¾Æ·¡ÀÇ ¸Þ¼¼Áö¸¦ ¹ÞÀ¸¸é¼­

WMU_ERROR_WRITING : ÁÖ·Î ¹ß»ý
WMU_ERROR_READING : 10¹ø¿¡ 1¹ø²Ã

lost connectionÀÌ ¹ß»ýÇÕ´Ï´Ù. °£°ÝÀº ´ëÁß¾øÀÌ 3~10ºÐ»çÀÌ

¿øÀÎ : ¸ð¸£°ÚÀ½

̧̿ :
¸Þ¼¼Áö ¹æ½ÄÀ̱⠶§¹®¿¡ ¹Ù·Î ¹Ù·Î 󸮰¡ ¾ÈµÇ¼­ ¹ß»ýÇÏ´Â ¹®Á¦°¡ ¾Æ´Ò±î?

¹æ¾È :
blocking¹æ½ÄÀ¸·Î ¼öÁ¤
free battlenet source, ultima online source(°¡Â¥?) ½ÉÃþ ºÐ¼®

¿¡±¸ Èûµå³×¿ä.

´ÙÀ½¿¡´Â 7Â÷ ¹öÁ¯(blocking¹æ½Ä)À» ¿¬ÀçÇØ ³ª°¡°Ú½À´Ï´Ù.

-> ¸¸µé¶§´Â Èûµé¾îµµ ¼­ºñ½º ¿ÀÇÂ ÇØ³õÀ¸¸é Â¥Áõ³¯¶§µµ ¸¹Áö¸¸ ´ëü·Î Àç¹Ì¿Í
º¸¶÷À» ´À³¥¼ö ÀÖÀ¸´Ï ¿­½ÉÈ÷µé ¸¸µå¼¼¿ä.

±×·³.