¾È³çÇϼ¼¿ä. ¹èƲµå·¡°ïÀ» °³¹ßÇÑ »ç¶÷ÀÔ´Ï´Ù.
°³¹ßÂø¼ö¿¡¼ ¼ºñ½º ¿À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¹æ½Ä)À» ¿¬ÀçÇØ ³ª°¡°Ú½À´Ï´Ù.
-> ¸¸µé¶§´Â Èûµé¾îµµ ¼ºñ½º ¿ÀÇÂ ÇØ³õÀ¸¸é Â¥Áõ³¯¶§µµ ¸¹Áö¸¸ ´ëü·Î Àç¹Ì¿Í
º¸¶÷À» ´À³¥¼ö ÀÖÀ¸´Ï ¿½ÉÈ÷µé ¸¸µå¼¼¿ä.
±×·³.