UDP Chatting Program

1. ±¸Çö ȯ°æ

 ¿î¿µÃ¼Á¦ : Windows NT
 °³¹ß ¾ð¾î : java(jdk1.2)
 ÀÛ¾÷ ¹× ¼öÇà ȯ°æ : PC Pentium MMX 166

2. äÆà ¼­¹ö ¹× Ŭ¶óÀ̾ðÆ® ±¸Çö ±¸Á¶

2.1 äÆà ¼­¹öÀÇ ±¸Á¶

<±×¸² 2-1> äÆà ¼­¹ö ±¸Á¶

  Ã¤Æà ¼­¹ö´Â DatagramServer¶ó°í ¸í¸íÇß°í, ½º·¹µå¸¦ Çϳª »ý¼ºÇϴµ¥ ÀÌ ½º·¹µå¿¡¼­ ´ëºÎºÐÀÇ ÀÛ¾÷À» ¼öÇàÇÏ°Ô µÈ´Ù. ½º·¹µå ³»ºÎ¿¡´Â hashtable°ú tokenizer¸¦ Æ÷ÇÔÇÏ°í À־ socketÀ¸·ÎºÎÅÍ µé¾î¿Â data¿¡¼­ ID¸¦ ±¸º°ÇØ ³»°Ô µÇ°í, ÀÌ ID´Â ´Ù½Ã packetÀÇ source address¿Í ÇÔ²² key·Î ÀüȯÇؼ­ hashtable·Î ÀúÀåÀÌ µÇ°Ô µÈ´Ù. hashtable¿¡´Â port°¡ ÀúÀåÀÌ µÇ¸ç ¿©±â¿¡ ÀúÀåµÈ port¸¦ ´Ù½Ã Àо°í, address¿Í ID¸¦ ÅëÇÏ¿© ÇöÀç µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ°í Àִ Ŭ¶óÀ̾ðÆ®·Î broadcasting ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

 2.2 äÆà Ŭ¶óÀ̾ðÆ® ±¸Á¶

 Ã¤Æà Ŭ¶óÀ̾ðÆ®´Â DatagramClient¶ó ¸íÇßÀ¸¸ç, ¿©±â¿¡¼­´Â ÁÖ·Î GUI¸¦ °í·ÁÇؼ­ ±¸ÇöµÈ ºÎºÐÀÌ ¸¹°í, Enter keyÀÇ ÀÔ·ÂÀ̳ª, ¸¶¿ì½ºÀÇ button press·Î packetÀ» Àü¼ÛÇÏ´Â ¿ªÇÒÀ» ´ã´çÇÏ°Ô µÈ´Ù. ¼­¹ö·ÎºÎÅÍ ¸Þ½ÃÁö¸¦ °è¼ÓÇؼ­ ¹Þ¾Æ¾ß Çϱ⠶§¹®¿¡, packetÀ» ¹Þ´Â ºÎºÐÀº ½º·¹µå¸¦ ÅëÇؼ­ ±¸ÇöÀ» Çß´Ù. ±×·¸°Ô Çؼ­ broadcating µÇ´Â data µéÀ» °è¼ÓÇؼ­ ¼ö½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.

<±×¸² 2-2> äÆà Ŭ¶óÀ̾ðÆ® ±¸Á¶

3. ÇÁ·Î±×·¥ È帧µµ

3.1 äÆà ¼­¹öÀÇ ÇÁ·Î±×·¥ È帧µµ

 ¸ÕÀú, ¼ÒÄÏÀ» ¿ÀÇÂÇÑ ´ÙÀ½, ÆÐŶÀ» ¼ö½ÅÇÑ ÈÄ, ÀÌ ÆÐŶÀÌ Á¾·á¸¦ ¿ä±¸ÇÏ´Â °ÍÀÎÁö¸¦ È®ÀÎÇÏ°í, ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â ÆÐŶÀÇ ¼Ò½º(Ŭ¶óÀ̾ðÆ®)°¡ µî·ÏµÇ¾î ÀÖ´ÂÁö¸¦ È®ÀÎÇؼ­ ÆÐŶÀ» broadcasting Çϱâ À§ÇÑ µî·ÏÀ» ÇÏ°Ô µÈ´Ù. µî·ÏÀÌ µÇ¾î ÀÖÀ» °æ¿ì´Â ±×´ë·Î ÆÐŶÀ» broadcatingÀ» ÇÏ°í ±×·¸Áö ¾ÊÀº °æ¿ì´Â µî·ÏÀ» ÇÑÈÄ broadcastingÀ» ÇÑ´Ù. ÆÐŶÀÌ Á¾·á¸¦ ¿ä±¸ÇÏ´Â °ÍÀ̾úÀ» °æ¿ì¿¡´Â µî·ÏµÈ ¼Ò½º¸¦ Á¦°ÅÇØÁ༭, Æ÷Æ® ³¶ºñ¸¦ ÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.

3.2 äÆà Ŭ¶óÀ̾ðÆ®ÀÇ ÇÁ·Î±×·¥ È帧µµ

 GUI ȯ°æÀ» ±¸ÃàÇϱâ À§ÇÑ setting°úÁ¤À» °ÅÄ£´ÙÀ½¿¡, ¼ö½ÅÀ» Çϱâ À§ÇÑ ½º·¹µå¸¦ È£ÃâÇÏ°Ô µÈ´Ù. ÀÌ ½º·¹µå´Â Ŭ¶óÀ̾ðÆ®·Î µé¾î¿À´Â ÆÐŶÀ» °è¼ÓÇؼ­ ±â´Ù¸®°í ÀÖ´Ù°¡ µé¾î¿À°Ô µÇ¸é Text Area¿¡ ¸Þ½ÃÁö¸¦ »Ñ¸®°Ô µÈ´Ù. ±×·± ÈÄ, SEND ¹öÆ°À̳ª ¿£ÅÍ Å°°¡ ÀÔ·ÂÀÌ µÉ ¶§±îÁö ±â´Ù·È´Ù°¡ ÀÌ·¯ÇÑ À̺¥Æ®°¡ ¹ß»ýÇÏ°Ô µÇ¸é, Text Field¿¡ ÀÖ´ø µ¥ÀÌÅ͸¦ packetÀ¸·Î ¸¸µé¾î¼­ Àü¼ÛÇÏ°Ô µÈ´Ù. Àü¼ÛÇÑ ÈÄ¿¡´Â ´Ù½Ã Å°³ª ¹öÆ°À» ±â´Ù¸®´Â »óÅ·Πµ¹¾Æ°£´Ù.

<±×¸² 3-1> ¼­¹ö ÇÁ·Î±×·¥ÀÇ È帧µµ

<±×¸² 3-2> Ŭ¶óÀ̾ðÆ® ÇÁ·Î±×·¥ÀÇ È帧µµ

4. ¼öÇà °á°ú

<±×¸² 4-1> ID ÀÔ·Â ´Ü°èÀÇ ¸ð½À

<±×¸² 4-2> ´ëÈ­½ÃÀÇ ¸ð½À

  ½ÇÇà ¸ð½ÀÀº <±×¸² 4-1>°ú <±×¸² 4-2>¿¡ Àß ³ªÅ¸³ª ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¶ß°Ô µÇ¸é óÀ½¿¡´Â ID¸¦ µî·ÏÇÏ°Ô µÇ¸ç, ±× ÀÌÈÄ¿¡´Â äÆÃÀ» ÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
 ¼­¹öÀÇ ¸ð½ÀÀº Ưº°È÷ º¸ÀÌ´Â °ÍÀÌ ¾ø¾î¼­ »ý·«À» Çß´Ù.
 Âü°í·Î, ¼­¹ö´Â java DatagramServer <enter> Çؼ­ ¶ç¿ì¸é µÇ°í, Ŭ¶óÀ̾ðÆ®´Â java DatagramClient [IP address] <enter> Çؼ­ ¶ç¿ì¸é µÈ´Ù.

 5. ºÎ·Ï