´ÙÀÌ·ºÆ® Ç÷¹ÀÌ·Î ¸¸µç°×À»¿ä (ÇÑ 10Àοë±îÁö ¸¸µå·Á´Âµ¥¿ä)
¸¸µé¸é 10¸íÁ¤µµ Á¢¼ÓÇÒ¤µ ÀÖ´Â ¼¹ö°¡ ÇÊ¿äÇÏÁö¾Ê³ª¿ä?
¾Æ´Ï¸é ±×³Éµµ µÇ³ª¿ä?
2¸íÀÌ»óÇÒ¶§ Á¢¼ÓÇÒ ¼¹ö¸¦ ±¸Çϴ¹ýÇϱ¸¿ä
°Å±ä ¾î¶»°Ô Á¢¼ÓÇØ¾ß ÇÏ´ÂÁö °¡¸£ÃÄÁÖ¼¼¿ä
´ÙÀÌ·ºÆ® Ç÷¹À̸¦ »ç¿ëÇÒ°æ¿ì ±âº»ÀûÀ¸·Î
0¹ø Ç÷¹À̾î.. Áï Á¦ÀÏ Ã³À½¿¡ ¸¸µå´Â »ç¶÷ÀÌ
¼¹ö±â´ÉÀ» ÇÏ°Ô µË´Ï´Ù.. (ÀÌ°É ¾à°£ ÀÀ¿ëÇÏ¸é ¼¹ö
Àü¿ëÀ» µû·Î ¸¸µé¼öµµ ÀÖ¾î¿ä...)
±×·¯´Ï±ñ ²À ¼¹öÀü¿ëÀÌ ÇÊ¿äÇÏÁø ¾ÊÁÒ..
2¸í ÀÌ»óÇÒ¶§ Á¢¼ÓÇÒ ¼¹ö¸¦ ±¸ÇÏ´Â ¹ýÀº..
Host·Î ÇÒ°ÍÀÌ³Ä JoinÀ» ÇÒ°ÍÀ̳ĸ¦ ¹°¾îºÁ¾ß ÇÕ´Ï´Ù.
±×·¡¼ JoinÀ̶ó¸é ¼½¼Ç¿°Å ÇÔ¼ö¸¦ »ç¿ëÇØ¼ ¾ò¾î³À´Ï´Ù.
TCP/IP °°Àº °æ¿ì¿£ ÁÖ¼Ò¸¦ ¸ÕÀú ÀÔ·ÂÇØ¾ß Çϱ¸¿ä..
´ÙÀÌ·ºÆ® Ç÷¹À̸¦ »ç¿ëÇÑ ¿¹Á¦¸¦ ½ÇÇàÇØº¸½Ã¸é
±Ý¹æ ÀÌÇØ°¡ °¡½Ç²¨¿¡¿ä...¼Û±æ¼· (SaemSong)
directplay(lobby)
¾È³çÇϼ¼¿ä!
¾Æ·¡ ¾î´ÀºÐ²²¼ Lobby´Â 3a¿¡¼ Áö¿øÀÌ µÇÁö ¾Ê´Â´Ù°í ¸»¾¸ Çϼ̴µ¥,
Âø¿À°¡ ÀÖ´Â °Í °°±º¿ä.... 3a ¿¡¼ Áö¿øÀÌ µË´Ï´Ù.
Àü óÀ½ ¿¡´Â lobby¸¦ »ç¿ëÇÏÁö ¾Ê°í ÇÁ·Î±×·¥ ÇÏ·Á ÇßÀ¸³ª...
¾Æ·¡ ¾î´ÀºÐ°ú ¸¶Âù °¡Áö·Î ¾î·Á¿î ÄݹéÇÔ¼ö·Î ÀÎÇØ
°á±¹Àº lobby¸¦ »ç¿ë ÇÏ¿´½À´Ï´Ù.
·Îºñ¸¦ »ç¿ëÇÏ´Ï Æí¸® ÇÕ´Ï´Ù. ÄÚµå ¼öµµ ¸ÄÀÌ ÁÙ¾îµé°í ¾µµ¥¾ø´Â
Äݹé ÇÔ¼öµµ ¾ø°í ÇÏ´Ï.... Âü ½±´õ±º¿ä...
ÇÏÁö¸¸ Ãßõ ÇÏ°í ½ÍÁö´Â ¾Ê½À´Ï´Ù.
·Îºñ¸¦ »ç¿ëÇØ¼ ÇÁ·Î±×·¥À» ÀÛ¼ºÇϸé ÀÚ½ÅÀÌ Â§ ÇÁ·Î±×·¥À» ½ÇÇà ½Ã۱â Àü¿¡
¸ÕÀú
·Îºñ ÇÁ·Î±×·¥À» ½ÇÇà ½ÃŰ´Â ¹ø°Å·Î¿òÀÌ ÀÖ°í...
°¡Àå ±ÍÂü¤¾Àº °ÍÀº ÀÚ½ÅÀÌ Â§ ÇÁ·Î±×·¥À» registry¿¡ µî·ÏÀ» ÇØ¾ß ÇÕ´Ï´Ù.
±×·¯´Ï ·Îºñ¸¦ »ç¿ëÇÏ´Â °ÍÀº À©µµ ÇÁ·Î±×·¥À» Àß ¸ð¸£´Â »ç¶÷¿¡°Ô
¾à°£ÀÇ Æí¸®ÇÔÀº ÀÖÀ» ¼ö ÀÖÀ¸³ª ÈǸ¢ÇÑ °ÔÀÓÀ» Á¦ÀÛ Çϴµ¥´Â
¾à°£ÀÇ ¿ÁÀÇ Æ¼°¡ Á¸ÀçÇÕ´Ï´Ù.
µÇµµ·Ï À©µµÇÁ·Î±×·¥À» ¿½ÉÈ÷ ÇØ¼ Direct Play¿¡ Á÷Á¢ Á¢±ÙÇÏ´Â
½Ç·ÂÀ» Ű¿ì´Â °ÍÀÌ ÁÁÀ»µí Çϱº¿ä...
Âü°í·Î ·Îºñ¶ó´Â °ÍÀº ÇѸ¶µð·Î ¿ÜºÎ ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
Direct Play registry¿¡ µî·ÏµÈ °ÔÀÓµéÀ» Àаí
»ç¿ëÀÚ°¡ ¼±ÅÃÇÑ °ÔÀÓ ÇÁ·Î±×·¥À» ½ÇÇà ½Ãŵ´Ï´Ù.
±×·¯¸é ·Îºñ´Â ½ÇÇàµÈ °ÔÀÓ¿¡ ³ÝÆ®¿÷¿¡ ¿¬°áµÈ »óŸ¦ Á¦°ø ÇØÁÝ´Ï´Ù.
±×·³ °ÔÀÓ¿¡¼´Â ´Ü¼øÈ÷ Direct Play °´Ã¼¸¸À» »ý¼º ½ÃŰ¸é µÇÁÒ
½¬¿î À̾߱⸦ Âü ¾î·Æ°Ô Çß±º¿ä.
Âü Áú¹®ÀÌ ÀÖÀ¸½Ã¸é ¿©±â·Î ¸ÞÀÏ º¸³»Áö ¸¶¼¼¿ä.
¾Æ·¡ ÁÖ¼Ò·Î ¸ÞÀÏ º¸³» ÁÖ½Ã¸é ¾Æ´Àµ¥±îÁö ´äÇØµå¸®°Ú½À´Ï´Ù.
±×·³ ¾È³çÈ÷...
tom5@iclab.chungnam.ac.kr
³×Æ®À¨ °ÔÀÓÀ» ¸¸µé·Á´Â Ãʺ¸ÀÚÀÔ´Ï´Ù.
¿ä»õ ¿ì¸®³ª¶ó RPGµµ ¹èƲ³ÝÀ» Áö¿øÇÏ´Â °ÔÀÓÀÌ
ÀÖ´õ±º¿ä.. ±×·±µ¥ ±×·± °ÔÀÓÀ» ¾î¶»°Ô ¸¸µé¾ú´ÂÁö
±Ã±ÝÇÕ´Ï´Ù.
NT¼¹ö¸¦ ±¸ÃàÇϰí DirectPlay Lobby¸¦ ÀÌ¿ëÇϸé
°¡´ÉÇÒ±î¿ä...? Direct Play°¡ 8¸í±îÁö´Â °ßµ®³»´Ï±ñ
¸¸µé¼ö ÀÖÁö ¾ÊÀ»±î¿ä...!
¸Ó±×°ÔÀÓÀÌ ¾Æ´Ñ ÀÏ¹Ý ½ºÅ¸³ª µð¾Æºí·Î ±×¸®°í
¿ä»õ ¿ì¸®³ª¶ó¿¡ ³ª¿À´Â RPGÁß ¹èƲ³ÝÀÌ °¡´ÉÇÑ
°ÔÀÓÀÇ ¿ø¸®¸¦ ¾Ë°í ½Í½À´Ï´Ù.. °í¼ö´Ô ºÎʵ右´Ï´Ù.
¸¸¾à,blizzard»çÀÇ battle.netÀ» ÁöĪÇϴ°Ŷó¸é,¾ê±â°¡ ´Ù¸¨´Ï´Ù. ±×°É ¸¸µç
ȸ»ç¿¡
¼
Áö¿ø °ÔÀÓÀ» À§ÇÑ sdk³ª ½ºÆåÀ» °ø°³Çϰí,¾²´Â°É Çã¿ëÇØ¾ß ÇÕ´Ï´Ù. ¹èƲ³ÝÀ̶ó
ºÒ¸®´Â ´Ù¸¥ °ÔÀÓ ·Îºñ ¼¹öµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù. °Å±â¿Í Çù¾àÇϰųª ÇØ¼ ¶óÀ̼¾½º¸¦
°¡Á®¿À°Å³ª ¸»°Å³ª ÇÑ ´ÙÀ½¿¡ ±× ½ºÆåÀ» ±¸ÇØ¾ß ÇÕ´Ï´Ù.
´ÙÀÌ·ºÆ®Ç÷¹ÀÌ´Â ±×·± ¸é¿¡¼ À¯¸®ÇÏÁÒ. ÀÌ¹Ì ±× ½ºÆåÀ» ¸¶À½´ë·Î ¾²µµ·Ï
°ø°³¸¦
ÇØ³ùÀ¸´Ï±î¿ä. ±×·¯¹Ç·Î,Ưº°ÇÑ °è¾àÀÌ ¾ø´Ù¸é,´ÙÀÌ·ºÆ®Ç÷¹ÀÌ·Î ¸¸µé°í ±×°ÍÀÇ
·Îºñ¿¡ ´ëÇÑ ½ºÆåÀ» ¸ÂÃç¼ °ÔÀÓÀ» ¸¸µé¾ú´Ù¸é ´ÙÀÌ·ºÆ®Ç÷¹À̸¦ Áö¿øÇÏ´Â
·Îºñ
¼¹ö, ¿¹¸¦ µé¾î ±¹³»¿¡ ¸î ÀÖ´Ù´Â ¹èƲ³ÝÀ̳ª mplayer°°Àº °÷µéÀ» Áö¿øÇÒ°Ì´Ï´Ù.
ÀÌ·¯ÇÑ ·Îºñ ¼¹ö¿¡ ´ëÇÑ ÀÚ·á´Â µû·Î ã¾Æº¸¼¼¿ä..
¾È³çÇϼ¼¿ä...
¸î´ÞÀü¿¡ ¿Ã·È´ø Áú¹®Àε¥¿ä ¾ÆÁ÷µµ ÀÌ ¹®Á¦¶«½Ã Çì¸Å°í ÀÖ´Â °ü°è·Î
´Ù½Ã Áú¹®À» ¿Ã¸³´Ï´Ù....
Áú¹®Àº ´ÙÀÌ·ºÆ® Ç÷¹ÀÌ¿¡ °üÇÑ Áú¹®Àä....
´ÙÀÌ·ºÆ® Ç÷¹À̸¦ ÀÌ¿ëÇØ¼ ¸¸µç °£´ÜÇÑ Äڵ尡 Àְŵç¿ä...
ÀÌ°É ½ÇÇàÀ» ½ÃŰ¸é ¿¹¸¦ µé¾î 2¸íÀÌ Á¢¼ÓÀ» Çϸé¿ä....
÷¿¡´Â Àß µ¹¾Æ°¡°Åµç¿ä....±×·±µ¥ Á¶±Ý¸¸ ´õ ÀÖÀ¸¸é °ÔÀÓÀÇ ÁøÇà¼Óµµ°¡ ´À·ÁÁý
´Ï´Ù....´Ù½Ã ¸»¾¸µå¸®¸é....³»°¡ ¿©±â¼ ÀúÂÊÀ¸·Î À¯´ÖÀ» ¿Å±â¸é....ÀúÂÊ
ÄÄÇ»ÅÍ
¿¡¼´Â ¸îÃÊÈÄ¿¡ À̵¿À» ÇÕ´Ï´Ù....ÀÌ»óÇѰÍÀº ÷¿¡´Â µ¿ÀÛÀ» Á¦´ë·Î ÇÑ´Ù´Â
°ÍÀÔ´Ï´Ù...¾îµð¿¡ ¿øÀÎÀÌ ÀÖÀ»±î¿ä....?
¾Æ½Ã´ÂºÐÀº °¡¸£ÃÄ Áֽøé Á¤¸» °¨»çÇϰڽÀ´Ï´Ù...
Á¦°¡ º¸±â¿¡´Â Áú¹®ÇϽŠºÐÀÌ ¹º°¡¸¦ À߸øÇÑ °Í °°½À´Ï´Ù.
Ȥ½Ã,°ÔÀÓ ·çÇÁ¿¡¼ ÀÌ·¸°Ô ó¸®ÇÑ°Ô ¾Æ´Ñ°¡ ½Í³×¿ä.
while(1)
{
°ÔÀÓ ÁøÇà,·£´õ¸µ µîµî..
µ¥ÀÌÅÍ ¼ö½Å ¹× 󸮸¦ 1ȸ¸¸ ÇÑ´Ù.
}
ÀÌ·¯¸é,½Ã°£ÀÌ Áö³ª¸é °ÔÀÓÀÌ ¹ö¹÷´î°Ì´Ï´Ù. ÀÌ·¸°Ô °íÄ¡¼¼¿ä.
while(1)
{
°ÔÀÓ ÁøÇà,·£´õ¸µ µîµî..
µ¥ÀÌÅÍ ¼ö½Å ¹× 󸮸¦ ´õ ÀÌ»ó ó¸®ÇÒ°Ô ¾øÀ»¶§±îÁö ÇѲ¨¹ø¿¡ ´Ù ÇÑ´Ù.
}
µà¾ó ¼Ò½º Áú´ä
#define REFGUID const
GUID &
#endif // !_REFGUID_DEFINED
#ifndef _REFIID_DEFINED
#define _REFIID_DEFINED
#define REFIID const
IID &
#endif // !_REFIID_DEFINED
#ifndef _REFCLSID_DEFINED
#define _REFCLSID_DEFINED
#define REFCLSID const
CLSID &
#endif // !_REFCLSID_DEFINED
#ifndef _REFFMTID_DEFINED
#define _REFFMTID_DEFINED
#define REFFMTID const
FMTID &
#endif // !_REFFMTID_DEFINED
#else // !__cplusplus
#ifndef _REFGUID_DEFINED
#define _REFGUID_DEFINED
#define REFGUID const
GUID * const
..ÀÌ·± ºÎºÐÀÌ wtypes.h¿¡ Àֳ׿ä.
±×·¯´Ï±î,C++¿¡¼´Â GUID&°¡, ¸®ÆÛ·±½º¶ó´Â°Ô ¾ø´Â C¿¡¼´Â GUID*¸¦ ¾²´Â±º¿ä.
dplay»Ó¸¸¾Æ´Ï¶ó ¾Ïư REFGUID¸¦ ¾²´Â°Ç ¸ðµÎ ÇØ´çµÇ´Â ¹®Á¦ÀÎ°Í °°±º¿ä.
ÀÌ·¸°Ô ÇØº¸½Ã¿ä..
#if defined(__cpl
usplus)
#define MYREFGUID const
GUID * const
#endif
ÀÌ°É ³Ö°í ÀÌÁ¦ºÎÅÍ´Â MYREFGUID¸¦ ¾²´Â°Ì´Ï´Ù. ±×·¡µµ REFGUID¿Í ¾ù°¥¸®´Â
ºÎºÐÀº
¿ª½Ã³ª ²¿ÀÏÅ״ϱî.. °¡Àå ¸¸¸¸ÇѰÍÀº C³Ä C++³Ä¿¡ µû¶ó ºÐ·ùÇØ¼ ÀÛ¾÷ÇϽô°Ô
¾î
¶³±î¿ä? ¼·Î ÀÏÀåÀÏ´ÜÀ̴ϱî ÁÁÀº ¹æ¹ýÀº ½º½º·Î °áÁ¤Çϼ¼¿ä.
¿¤¶õ
°á±¹ Á¦°¡ ¼Ò½º¸¦ Á¤È®È÷ ºÐ¼®ÇÏÁöµµ ¸øÇϰí Áú¹®À» ¸ÕÀú.
ÇÏÇÏ.Á˼Û..
Èì..
´ÙÀÌ·ºÆ® Ç÷¹ÀÌ ½áº¸½ÅºÐÀÌ ¾ø³ª...
Àú¸¸ ¸Ç¶¥¿¡ ÇØµùÇϴ°ÍÀº ¾Æ´ÑÁö..À̰Å..
°á±¹..
SendSync ¸Þ¼¼Áö°¡ °ÔÀÓ·çÇÁÁß ½Ã°£¿¡ ¸ÂÃç ´Ù¸¥Ç÷¹ÀÌÇÑÅ×.
º¸³»Áö´Âµ¥.
À̸޼¼Áö°¡ óÀ½ È£ÃâµÇ¸é.
´Ù¸¥ ÇÁ·Î±×·¥¿¡¼´Â DPlaySetPlayerData·Î µî·Ï½ÃƼ´õ±º¿ä.
óÀ½¸¸..
ÇÏÇÏ
ÀÌ°É ¸øºÃ´Ù´Ï..
Èì..Áö±Ý Á¦°¡ ¸»Çϴ°ÍÀº DEUL ¿¹Á¦ÇÁ·Î±×·¥À» ¸»Çϴ°ÍÀÔ´Ï´Ù.
±×·±µ¥
ÇѰ¡Áö Áú¹®ÀÌ ¶Ç »ý±â³×¿ä.
´äº¯Á» ÇØÁÖ¼¼¿ä.
DPlaySetPlayerData À̰ɾ²¸é
ÇѸ¶µð·Î ´ÙÀÌ·ºÆ®Ç÷¹ÀÌ·Î ¿ÀºêÁ§Æ® °ü¸®¸¦ Ç϶ó´Â ¸»Àε¥.
Èì..
º°·Î ¾²°í ½ÍÁö¾Ê´õ±º¿ä.
DPlaySetPl
ayerData
À̰ųª.
DPlayEnumPlayers
ÀÌ·±°ÍÀ» ¾µºÁ¿¡ ÀÚü ¿£ÁøÀ» ¸¸µé¾î ¾²´Â°ÍÀÌ
À§ÇÔ¼ö ¾È¾²°íµµ dp »ç¿ëÇÒ¼ö ÀÖÁÒ..
ÀÌ°Ô Áú¹®ÀÔ´Ï´Ù.
¾È¾²°íµµ ÃæºÐÈ÷ ¾µ¼ö ÀÖ½À´Ï´Ù. ÀÌ¹Ì directplay¿¡µµ send,sendexµîÀÇ api°¡ Á¸Àç
ÇÏÁÒ. ±×°É ¾²¸é µÇ´Â°Å´Ï±î¿ä.
±×·±µ¥..¼³¸í¼¿¡ º¸´Ï±î setplayerdata°°Àº ÇÔ¼ö¸¦ ÇÇÇÏ´Â °ÍÀÌ ÁÁ´Ù°í ³ª¿ÍÀÖ½À´Ï
´Ù. ³×¶± 󸮸¦ ¾Ë¾Æ¼ ÇÑ´ÙÁö¸¸, È¿À²¼º¿¡ ÀÚ½ÅÀÌ ¾ø¾î¼ÀÎÁö 'Åë½Å·®ÀÌ
¹«Ã´ ¸¹
À¸´Ï ÇÇÇ϶ó'¶ó´Â ½ÄÀ¸·Î Àû¾î³ù´õ±º¿ä.
±×¸®°í, °´Ã¼¸¦ dplay¿¡¼ °ü¸®ÇÑ´Ù´Â °ÍÀº,world 2 world°°Àº ¼ÒÇÁÆ®¿þ¾î¿¡¼
¾²°í
ÀÖ´Â ±â¼ú Áß ÇϳªÀε¥..Á¦°¡ º¸±â¿¡´Â directplay¿¡¼ Áö¿øÇÏ´Â ¼öÁØÀº
±×¾ß¸»·Î
"²Ê°ú±¤" ¹¹ ÀÌ·¸°Ô Ç¥ÇöÇÒ ¼ö ÀÖÀ»±î¿ä? :) ¾ÆÁÖ °£´ÜÇÑ °ÔÀÓÀÌ
¾Æ´Ï¶ó¸é, »ç½Ç À¯
¾ß¹«¾ßÁÒ. ±×·¡¼, À̰ÍÀú°Í °í·ÁÇØ¼ °ÔÀÓÀ» ¸¸µå½Å´Ù¸é, ±Ý¹æ setplayerdata°¡
¼³
°è °úÁ¤¿¡¼ºÎÅÍ º°·Î ¾µµ¥¾ø´Â °ÍÀÓÀ» ¾Ë¼ö ÀÖÀ»°Ì´Ï´Ù.
ÀÚü ¿£ÁøÀ̶ó.. ¸¸µå¼Åµµ ÁÁ½À´Ï´Ù. ±×·¸Áö¸¸,¾Õ¿¡¼µµ ¾ð±ÞÇßµíÀÌ setplayerdata
¼öÁØÀÇ ¿£ÁøÀ» ¸¸µå½Ã´Â °Å¶ó¸é ¸»¸®°í ½Í±º¿ä. ±× Á¤µµ ¼öÁØÀ̶ó¸é, ¸¸µå´Â°Íµµ
»ó
´çÈ÷ Â¥Áõ³ªÁö¸¸, ¸·»ó ¸¸µé¾îµµ ¿ª½Ã,º°·Î ¾µµ¥°¡ ¾øÀ»°Ì´Ï´Ù. :)
Á÷Á¢ ³×¶± 󸮸¦ ¾ô¾î³õ´Â ±¸Á¶·Î ¸¸µå½Ã´Â°Ô °¡Àå ¸¸¸¸ÇÏ°í ÆíÇÒ°Ì´Ï´Ù.
±×¸®°í
,duel¼Ò½º¸¦ Àß ¶â¾îº¸¸é setplayerdataº¸´Ù ¸Þ½ÃÁö 󸮿¡ ÀÇÁ¸À» ¸¹ÀÌ Çϰí
ÀÖ´Ù´Â°É ±Ý¹æ ¾Ë¼ö ÀÖÀ»ÅÙµ¥¿ä..
ű׸¦ Çϳª ºÙÀÌÀÚ¸é..ÀÌ»óÀº ÀúÀÇ °æÇè´ãÀ̾ú½À´Ï´Ù.
¿¤¶õ
IPX ÀåÄ¡¸¸ ¾ò´Â ¹æ¹ý..
Èì..
À̰еµ¿ÍÁÖ°í ½ÍÁö¸¸..Àúµµ ¿ö³« Ãʺ¸¶ó.
ÇÏÁö¸¸...´äº¯ÀÌ µÉ¼öµµÀÖÀ»°Í °°¾Æ..
Èì..
¸ÕÀú
DirectPlayEnumerate ¿¡ º¸³»´Â ÄݹéÇÔ¼ö°¡
EnumConnectionsCallback ÀÌ ÇÔ¼ö°¡ ¸Â³ª¿ä..
Èì..
ÀÌÇÔ¼ö¿¡¼ ipx¸¸ ¾ò¾î¿À·Á´Â °Ç°¡¿ä.. ÀÌ°Ô ¸Â´Ù¸é..
Á¦ »ý°¢¿¡
¿¹Á¦ ¼Ò½ºÁß
override
EnumModemAddress
·Îºñ¸¦ »ç¿ëÇØ ¸ðµ© Á¤º¸¸¸ ¾ò¾î¿À´Â
EnumModemAddress ÄݹéÇÔ¼ö°¡ ÀÖ´õ±º¿ä.
°Å±â¼ ÀÎÀÚÁß REFGUID lpguidDataType
°¡ ÀÖ´øµ¥.
À̰É
if (IsEqualGUID(lpguidDataType, &DPAID_Modem))
¸¦ »ç¿ëÇØ ¸¸¾à ¸ÂÀ¸¸é Á¤º¸¸¦ ¾ò¾î¿À´õ±º¿ä.
À̰ɺ¸¸é
EnumConnectionsCallback ÇÔ¼ö¿¡µµ
LPCGUID lpguidSP
ÀÌÀܰ¡ Àִµ¥
¿©±â¼ ÄݹéÇÔ¼ö¿¡
if (IsEqualGUID(lpguidSP, &DPSPGUID_IPX))
¸¦ »ç¿ëÇÏ¿© ÂüÀ̸é Ãß°¡ÇÏ°í ¾Æ´Ï¸é ±×³É ºüÁ®³ª°¡´Â
¹æ½ÄÀ¸·Î ......
Èì...
ÀÌ·¯¸é µÉ°Í °°±âµµ ÇÏÁö¸¸..
±¸º»¼ö
perpet
Èì.
dp¿¡¼
send·Î ¸Þ¼¼Áö¸¦ º¸³ÂÀ»¶§.
¸ÕÀú º¸³½¸Þ¼¼Áö°¡ ³ªÁß¿¡ º¸³½¸Þ¼¼Áöº¸´Ù
´Ê°Ô Àü´ÞµÉ¼öµµ ÀÖ³ª¿ä.
±×¸®°í °¡´ÉµµÁß ¼Õ½ÇµÇ°Å³ª ¼Õ»óµÉ¼öÀÖ³ª¿ä.
Èì.
ÀÌ·±°Í±îÁö °í·ÁÇÏ·Á´Ï À̰аñ¶§¸®´Â±º.
¾Æ..±×¸®°í
º¸Åë ÀÌ·±°æ¿ì.
¾îÄÉ Ã³¸®¸¦ ÇØÁÖ¾î¾ßÇÏ´ÂÁö.
±×·³.
°ñ¶§¸®Áö¸¸,´ç¿¬ÇÕ´Ï´Ù.
ÇÏÁö¸¸,DPSEND_GUARANTEED?¸¦ ºÙÀÌ¸é ±×·¸Áö´Â ¾ÊÀ»°ÍÀÔ´Ï´Ù.
´ë½Å,¾öû ´À¸®°ÚÁÒ.
..±×·± °æ¿ì°¡ »ý°Üµµ ¾î´À Á¤µµ ¿ÏÃæÀÌ µÇ´Â °Íµé,¿¹¸¦ µé¸é Ç÷¹À̾îÀÇ À§Ä¡
°°Àº °ÍµéÀÌ »ç¿ë ´ë»óÀÌÁÒ. Á¶±ÝÀÇ ¿ÀÂ÷µµ Çã¿ë¸øÇÏ´Â µ¥ÀÌÅÍ´Â
DPSEND_GUARANTEED¸¦ ¾²´Â°Ô ÁÁÁÒ.
Á»´õ Á¤È®È÷ ¸»ÇÏÀÚ¸é, guaranteed°¡ ¾Æ´Ñ ¼Û¼ö½ÅÀº UDPÇÁ·ÎÅäÄÝÀ» ¾¹´Ï´Ù.
±× ÇÁ·ÎÅäÄÝ ¼ºÁúÀÌ ¼ø¼°¡ µÚ¹Ù²î°Å³ª,¾È°¡°Å³ª,µÎ°³ÀÌ»óÀÌ Áߺ¹µÇ¾î
°¡´Â µîÀÇ ¿ÀÂ÷°¡ ÀÖ½À´Ï´Ù.
DPChat ³ª ±×¹ÛÀÇ ´Ù¸¥ SampleÀ» º¸°Ô µÇ¸é...
TCP/IP¸¦ ¼±ÅÃÇÏ°Ô µÇ¸é.. IP¸¦ ³ÖÀ¸¶ó´Â ¸Þ½ÃÁö ¹Ú½º°¡ ³ª¿É´Ï´Ù..
¿©±â¿¡¼ ±× ¸Þ½ÃÁö ¹Ú½º¸¦ ¶ç¿ìÁö ¾Ê°í.. »ç¿ëÇÏ´Â ¹æ¹ýÀº ¾øÀ»±î¿ä?
ÀÚ½ÅÀÇ IP¸¦ »ç¿ë Çϰųª ¾Æ´Ï¸é ´Ù¸¥ »ç¶÷ÀÇ ¾ÆÀÌÇǸ¦ »ç¿ëÇÒ ¼ö ÀÖ´Â
¹æ¹ýÀ» ¾Ë°í ½Í³×¿©..
º°ÁþÀ» ´Ù ÇØ º¸¾Ò´Âµ¥..
¸Ç µÚ¿¡ ¿É¼Ç¿¡ ..._RETURN.. ¸¦ ³Ö¾î º¸¾Ò´Âµ¥µµ..
¸Þ½ÃÁö ¹Ú½º°¡ ¶ß°Ô µÇ´õ±º¿©.. ÂÁ..
Tutorial 3: Overriding the Service Provider Dialogs Ç׸ñÀ» directx
help¿¡¼
ã¾Æº¸¼¼¿ä.
°Å±â¿¡ ´äÀÌ ÀÖÀ»°Ì´Ï´Ù.
dp´Â ¼Ò¼ö Ç÷¹À̸¸°¡´ÉÇÏ´Ù°í Çϴµ¥.
±×ÀÌÀ¯¸¦ ±×³É.
½ÇÇàÇØº¸´Ï ±×·¸´õ¶ó..¸¸ ³ª¿ÍÀÖ±º¿ä..
±×·¯´Ï±î.
dp°¡ ¿Ö ³»ºÎÀûÀ¸·Î ¾îÄÉ ±¸¼ºµÇ¿© Àֱ⠶§¹®¿¡
±×·¸´õ¶ó´Â ¸»ÀÌ ¾ø¾î¿ä.
Àü ±×°É ¾Ë°í½Í¾î¿ä...
directx6ºÎÅÍ´Â ºñµ¿±â 󸮸¦ Áö¿øÇÏ±â ‹š¹®¿¡, directx5ÀÌÀüÀÇ dp¿¡¼
°íÁúÀ̾ú´ø ºí·°Å· Çö»óÀ» ¹«¸¶ÇÒ ¼ö ÀÖÁÒ. ÀÌ·± ¹®Á¦°¡ ÀÖ¾ú°í¿ä..
¶Ç Çϳª´Â,µéÀº ¾ê±âÀÏ »Ó Á÷Á¢ ½ÇÇèÇØ º¸Áö´Â ¾Ê¾ÒÁö¸¸, dp°¡ 92¸í?
Á¤µµÀÇ Àοø±îÁö¸¸ ó¸®ÇÒ ¼ö ÀÖ´Ù°í ÇÕ´Ï´Ù.
¾îÂ÷ÇÇ DPµµ ¼ÒÄÏ Ä¿³Ø¼ÇÀ» Ãß»óÈ ½ÃÄѳõÀº ·¹À̾î¶ó°í ¸»ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼ö¾ß
¾î¶»°Ô ¾²µç ³»ºÎÀûÀ¸·Î´Â Win32¼ÒÄϵ¿ÀÛÀ» ÇÑ´Ù´Â ¸»ÀÌÁÒ(ÀÚ¼¼È÷´Â ¸ð¸§)
DP¿¡¼ 92°³ Á¤µµÀÇ ¿¬°á¸¸ÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀÌ °·ÂÇÑ Áõ°ÅÀε¥ À̰ÍÀº win95ÀÇ
¼ÒÄÏ ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ Á¦°øÇÏ´Â ÃÖ´ë°¹¼öÀÇ ¼ÒĹ¼ö¿Í °ÅÀÇ ÀÏÄ¡ÇÏ´Â ¼öÄ¡°Åµç¿ä
±×·¯³ª WinNTÀÇ °æ¿ì´Â ¼ÒÄÏÀ» ÈξÀ ¸¹ÀÌ »ý¼ºÇÒ ¼ö ÀÖÀ¸¹Ç·Î º¸Åë ¼¹ö¸¦
NT¿¡
¶ç¿ì°Ô µÇÁÒ. ¹®Á¦´Â ÇöÀç NT°¡ DirectX3.0ÀÌ»óÀ» Á¦´ë·Î Áö¿øÇÏÁö ¾ÊÀ¸¹Ç·Î
Ŭ¶óÀÌ¾ðÆ®¸¦ 6.0Á¤µµ·Î ÀÛ¼ºÇÏ¿´À»¶§ DP°¡ °ú¿¬ Á¦´ë·Î µ¿ÀÛÇÒ °ÍÀÎÁö´Â
¸ð¸£°Ú´Ù´Â Á¡ÀÌÁÒ. Àúµµ Áö±Ý ¸Ó±×¸¦ ¸¸µé°í ÀÖÁö¸¸ ±×·¡¼ Win32¼ÒÄÏÀ» ¾¹´Ï´Ù.
DP´Â ¼¹ö/Ŭ¶óÀÌ¾ðÆ® È¯°æº¸´Ù´Â ³ÝÇÿëÀ¸·Î ´õ ÀûÇÕÇÏ°Ô ¸¸µé¾î Áø °Í °°½À´Ï´Ù.
¾È³çÇϼ¼¿ä.....
´ÙÀÌ·ºÆ® Ç÷¹ÀÌ¿¡ °üÇØ¼ Áú¹®ÇÒ °ÍÀÌ ÀÖ¾î¼ ÀÌ·¸°Ô ±ÛÀ» ¿Ã¸³´Ï´Ù...
Á¦°¡ ¿äÁò ´ÙÀÌ·ºÆ® Ç÷¹À̸¦ ÀÌ¿ëÇØ¼ °ÔÀÓÀ» ¸¸µå´Âµ¥¿ä...(»ç½Ç °ÔÀÓÀº
¾Æ´Ï±¸
¿ä ±×³É ¿¹Á¦....^^;) ¸Þ¼¼Áö¸¦ ÁÖ°í ¹ÞÀ»¶§¿ä...´ë°Ô ¾²·¹µå·Î ÇÏÀݾƿä...
±×·¡¼ ¿¬°áÀÌ µÇ¸é ¾²·¹µå¸¦ »ý¼ºÇؼ ¸Þ¼¼Áö¸¦ ÁÖ°í ¹Þ´Âµ¥¿ä...±×·¸°Ô Çϸé
ÇÁ·¹ÀÓ¼ö°¡ 10¿¡¼ 20Á¤µµ ¹Û¿¡ ¾È³ª¿É´Ï´Ù.....±×·¡¼ Á¦°¡ ÇÑ ¹æ¹ýÀº¿ä....
Çø³ÇÏ´Â ºÎºÐ ÀÖÀݾƿä..°è¼Ó Çø³À» ÇÏ´Â ºÎºÐ¿¡ ¸Þ¼¼Áö¸¦ ÁÖ°í ¹Þ´Â ÇÔ¼ö¸¦
³Ö¾î º¸¾Ò½À´Ï´Ù......±×·¯´Ï±î ÇÁ·¹ÀÓ¼ö´Â 30ÇÁ·¹ÀÓÁ¤µµ ³ª¿À´Âµ¥¿ä....
¹®Á¦´Â óÀ½¿¡´Â Àß µ¿ÀÛÇÏ´Ù°¡ ¸îºÐ¸¸ Áö³ª¸é À̰ÍÀÌ ¹ÝÀÀÀÌ ´Ê°Ô ¿À´Â°Ì´Ï´Ù...
±×·¯´Ï±î Á¦°¡ ÀÌÂÊ¿¡¼ ½ºÇÁ¶óÀÌÆ®¸¦ ¿Å°å´Âµ¥ ¿·¿¡ ÄÄÇ»ÅÍ¿¡¼´Â ÇÑÂü µÚ¿¡
À̵¿
ÇÏ°Ô µÇ´õ±º¿ä...óÀ½ºÎÅÍ µ¿ÀÛÀ» Á¦´ë·Î ¾ÈÇÏ¸é ¸»À» ¾ÈÇϰڴµ¥¿ä....À̰Ô
÷¿¡´Â µÇ´Ù°¡ ³ªÁß¿¡ ¸îºÐÀÌ Áö³ª¸é ±×·¸°Ô ´À·ÁÁö³×¿ä......
¸Þ¼¼Áö¸¦ È¿°úÀûÀ¸·Î ÁÖ°í ¹Þ´Â ¹æ¹ýÀº ¾øÀ»±î¿ä.....?
°í¼ö´ÔµéÀÇ ´äº¯ ºÎʵ右´Ï´Ù......³¡±îÁö Àоî Áּż °¨»çÇÕ´Ï´Ù....
P.S : ±Ùµ¥ ÀÌ»óÇÏ°Ô ³×Æ®¿öÅ© °Ô½ÃÆÇ¿¡ ´ÙÀÌ·ºÆ® Ç÷¹ÀÌ¿¡ °üÇÑ ³»¿ëÀÌ
º°·Î
¾ø³×¿ä.....¿äÁò ³×Æ®¿öÅ© °ÔÀÓÀº ´ÙÀÌ·ºÆ® Ç÷¹ÀÌ·Î ¾È¸¸µå³ª¿ä....?...^^;
¾È³çÇϼ¼¿ä...
À½... ÇÁ·¹ÀÓ´ÜÀ§·Î Çѹø¾¿ µ¥ÀÌÅ͸¦ ó¸®ÇÏ½Å°Í °°Àºµ¥¿ä...
ÇöÀçµé¾î¿Â µ¥ÀÌÅ͸¦ ¸ðµÎ ó¸®ÈÄ¿¡ ´ÙÀ½ÇÁ·¹ÀÓÀ¸·Î ³Ñ¾î°¡º¸¼¼¿ä...
±×·³..
DirectPlay ¸¦ ÀÌ¿ëÇØ¼ ³×Æ®¿öÅ© ÇÁ·Î±×·¥À» Â¥´Âµ¥¿ä
Host ´Â Á¦´ë·Î µÇ´Âµ¥
Join ÇÏ·Á°í ÇÒ¶§ EnumSession À¸·Î ¼¼¼ÇµéÁß ¾î´À¼¼¼ÇÀ¸·Î
Á¶ÀÎÇÒÁö¸¦ °áÁ¤ÇؾߵǴµ¥
¹«Á¶°Ç ù¹øÂ° ¼¼¼ÇÀ¸·Î¸¸ Á¢¼ÓÇÏ·Á°í ÇÕ´Ï´Ù..
°í¸£´Â ·çƾ ¾øÀÌ ¹Ù·ÎµÇµµ·ÏÀÌ¿ä..
DPSESSIONSDESC2 SessionDesc ¿¡¼
SessoinDesc.guidInstance ¿¡ µé¾î°¥°ª¸¸ ³Ö¾îÁÖ¸é µÉ°Í°°Àºµ¥..
¾î¶»°Ô ÇØ¾ßµÉÁö ¾Ë·ÁÁÖ¼¼¿ä.
// global º¯¼ö
// global
GUID guidSession;
int nIndex;
//-------------------------------------------------------------------------
// EnumSessions
//-------------------------------------------------------------------------
HRESULT EnumSessions()
{
HRESULT hr;
DPSESSIONDESC2 sessionDesc;
nIndex = 0;
// add sessions to
ZeroMemory(&sessionDesc, sizeof(DPSESSIONDESC2));
sessionDesc.dwSize = sizeof(DPSESSIONDESC2);
sessionDesc.guidApplication = SNOWGAME_GUID;
hr = m_pDP4A->EnumSessions(&sessionDesc,
0, EnumSessionsCallback,
NULL,
DPENUMSESSIONS_AVAILABLE | DPENUMSESSIONS_ASYNC);
return hr;
}
//-------------------------------------------------------------------------
// callback ÇÔ¼ö
//-------------------------------------------------------------------------
BOOL FAR PASCAL EnumSessionsCallback(
LPCDPSESSIONDESC2
lpSessionDesc,
LPDWORD
lpdwTimeOut,
DWORD
dwFlags,
LPVOID
lpContext)
{
//
if (dwFlags & DPESC_TIMEDOUT)
return (FALSE);
// store session guid
guidSession = lpSessionDesc->guidInstance ;
// session¼ö Áõ°¡
¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡
nIndex++;
// Returns TRUE to continue the enumeration or
FALSE to stop it.
return TRUE;
}
À§¿Í °°ÀÌ sessionÀÇ guid¸¦ Àü¿ªÀ¸·Î Àâ¾ÆµÎ°í,
Ä«¿îÅ͸¦ Àü¿ªÀ¸·Î µÓ´Ï´Ù.
±×¸®°í EnumSessions¸¦ È£ÃâÇÑ ÈÄ nIndex °¡ 0 º¸´Ù Å©´Ù¸é
sessionÀ» ã¾Ò´Ù´Â °ÍÀ̹ǷΠ±×¶§ ¼¾ß OpenÀ¸·Î joinÇÏ¸é µË´Ï´Ù.
¿©±â¼ ÁÖÀÇÇÏ½Ç °Ç EnumSessionsÇÔ¼ö¸¦ ÇÑ ¹ø È£ÃâÇϸé sessionÀ» ¼º°øÀûÀ¸·Î
ã´Â´Ù°í »ý°¢ÇÏ½Ã¸é ¾ÈµË´Ï´Ù.
Àû¾îµµ µÎ¼¼¹ø È£ÃâÇØ¾ß ÇÏÁÒ.
±×·¡¼ dpchat°°Àº »ùÇÿ¡¼± timer¸¦ ½á¼ °è¼Ó ã½À´Ï´Ù.
timer¸¦ ½á °è¼Ó ã´Ù°¡ ãÀ¸¸é ( nIndex°¡ 0º¸´Ù Å©°ÚÁÒ.)
±×·¯¸é timer Á×À̰í joinÇÏ¸é µË´Ï´Ù.
¾È³çÇϽʴϱî?
³×Æ®¿÷ °ÔÀÓ½ÇÇà½Ã Provider¸¦ ¼±ÅÃÇÏ´Â ´ÙÀ̾˷α׸¦ ³ªÅ¸³ªÁö ¾Ê°í
ÀÓÀÇ·Î Ç×»ó TCP¸¦ ¼±ÅÃÇÏ·Á°í ÇÕ´Ï´Ù.
À̰ÍÀ» À§ÇÏ¿© DirectPlayEnumerate()ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í ±×³É
ÇÏ·Á°í Çϴµ¥ ¹æ¹ýÀ» Àß ¸ð¸£°Ú±º¿ä.
ÇØ°á¹æ¹ýÀ» ¾Ë·ÁÁÖ½Ã¸é °¨»çÇϰÚÀ¾´Ï´Ù.
óÀ½À¸·Î ¾²´Â ´äº¯À̳׿ä..^^
´ÙÀ̾˷α׿¡¼ ¼±ÅÃÇÏÁö ¾Ê°í ¹Ù·ÎµÇ°Ô ÇϽǷÁ¸é¿©..
DirectX SDK ÁßÀÇ OVERRIDE.C ¿¡¼
CreateServiceProviderAddress ÇÔ¼ö¸¦ Âü°íÇØº¸½Ã¸é
µÉ°Ì´Ï´Ù..
±×·³..^^