±×·³ µ¥ÀÌÅͱ׷¥ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» ó¸®ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸±â·Î ÇϰڽÀ´Ï´Ù. ¿ì¼± ¿ª½Ã DatagramSocketÀÇ ¼ÒÄÏ °´Ã¼¸¦ »ý¼ºÇÏ¿©¾ß ÇÕ´Ï´Ù. ±× ´ÙÀ½¿¡´Â ÆÐŶÀ» »ý¼ºÇÏ¿©¾ß ÇÕ´Ï´Ù. À̹ø¿¡´Â ÆÐŶÀ» Àü¼Û¿ëÀ¸·Î ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ±×¸®°í ¸¸µç ÆÐŶÀ» ¸ñÀûµÈ ÁÖ¼Ò·Î º¸³À´Ï´Ù. ÀÌ ¶§´Â send()¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. UDPÆÐŶÀº Àü¼Û Áß »ç¶óÁú ¼öµµ ÀÖ°í, µÚÀÇ ÀÚ·á°¡ ¸ÕÀú µé¾î °¥ ¼öµµ Àֱ⠶§¹®¿¡ Àü¼ÛÇÏ´Â ÂÊÀÇ IP Address¿Í Port¹øÈ£´Â Çì´õ¿¡ ÀÚµ¿À¸·Î ºÙ¾î¼ °°ÀÌ Àü¼ÛÀÌ µË´Ï´Ù. ÀÌ·¸°Ô Àü¼ÛµÈ ÆÐŶÀº ¼¹ö¿¡ µµ´ÞÇϸé ÀÀ´ä µ¥ÀÌÅͱ׷¥ ÆÐŶÀ» »ý¼ºÇÏ¿© ´Ù½Ã Ŭ¶óÀÌ¾ðÆ®·Î º¸³»°Ô µÈ´Ù. Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥Àº ³»¿ëÀ» ó¸®ÇÏ°í ¼ÒÄÏÀ» ´Ý¾ÆÁÝ´Ï´Ù. º°·Î ¾î·Á¿î ¾ê±â´Â ¾Æ´Õ´Ï´Ù. ¹°·Ð ±í°Ô µé¾î°¡¸é ¾î·ÆÁÒ.
¢Ñ µ¥ÀÌÅͱ׷¥ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥ ó¸® °úÁ¤ |
1. µ¥ÀÌÅͱ׷¥ ¼ÒÄÏ »ý¼º ¹× ¿¬°á 2. Ãâ·Â µ¥ÀÌÅͱ׷¥ ÆÐŶ »ý¼º ¹× ¹Þ±â(¿äû º¸³»±â) 3. ÀÔ·Â µ¥ÀÌÅͱ׷¥ ÆÐŶ »ý¼º ¹× ¹Þ±â(ÀÀ´ä ¹Þ±â) 4. ÀÀ´ä ³»¿ë ó¸® ¹× ¼ÒÄÏ ´Ý±â |
´ÙÀ½ ¿¹´Â µ¥ÀÌÅͱ׷¥ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» ó¸®ÇÏ´Â °úÁ¤À» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.
UdpDayTimeClientTest.java |
import java.io.*; import java.net.*; public class UdpDayTimeClientTest { public static void main(String[] args) { DatagramSocket socket=null; DatagramPacket packetOut=null, packetIn=null; byte packetBuf[] = new byte[1024]; InetAddress serverInet; if(args.length < 1) { System.out.println("Á¢¼ÓÇÒ ¼¹öÀÇ È£½ºÆ® À̸§À̳ª IP Address¸¦ ÀÔ·ÂÇϼ¼¿ä."); System.exit(1); } try { socket = new DatagramSocket(); serverInet = InetAddress.getByName(args[0]); packetOut = new DatagramPacket(packetBuf, 2, serverInet, 3000); packetIn = new DatagramPacket(packetBuf, 1024); socket.send(packetOut); socket.receive(packetIn); String dayTime = new String(packetIn.getData(),0, packetIn.getLength()); System.out.println("DayTime: " + dayTime); socket.close(); } catch(IOException e){ System.out.println("Failure: "+e); } } } |
C:\JavaExample\17>javac UdpDayTimeClientTest.java C:\JavaExample\17>java UdpDayTimeClientTest localhost DayTime: Thu Oct 18 14:26:50 GMT+09:00 2001 C:\JavaExample\17>java UdpDayTimeClientTest 127.0.0.1 DayTime: Thu Oct 18 14:27:10 GMT+09:00 2001 |
±×·³ À§ÀÇ ¿¹Á¦¸¦ ¼³¸íÇÏ¸é¼ ´Ù½Ã ¸»¾¸ µå¸®°Ú½À´Ï´Ù. À§ÀÇ ¿¹Á¦ ÇÁ·Î±×·¥À» ½ÇÇà ½Ãų ¶§¿¡´Â µÚ¿¡ Àü¼ÛµÉ ¼¹öÀÇ È£½ºÆ® À̸§À̳ª IP Address¸¦ ÀÔ·ÂÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ÀÔ·ÂÀÌ ¾ÈµÇ¸é ÇÁ·Î±×·¥ÀÌ Á¾·á°¡ µË´Ï´Ù.
n if(args.length < 1) {
n System.out.println("Á¢¼ÓÇÒ ¼¹öÀÇ È£½ºÆ® À̸§À̳ª IP Address¸¦ ÀÔ·ÂÇϼ¼¿ä.");
n System.exit(1);
n }
¿¹Á¦¿¡¼´Â ÇÑ ´ëÀÇ ÄÄÇ»ÅÍ¿¡ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¸¦ ±¸ÇöÇ߱⠶§¹®¿¡ ¡°localhost¡± ¿Í ¡°127.0.0.1¡±À» »ç¿ëÇÏ¿´½À´Ï´Ù. ´ÙÀ½¿¡ Àü¼Û¿¡ ¾²¿©Áú ¼ÒÄÏÀ» »ý¼ºÇÏ¿©¾ß ÇÕ´Ï´Ù. ¼ÒÄÏÀ» »ý¼ºÇغ¸ÁÒ.
n DatagramSocket socket = new DatagramSocket();
À§ÀÇ ±¸¹®À» ÅëÇØ µ¥ÀÌÅͱ׷¥ ¼ÒÄÏ »ý¼º°ú ¼ÒÄÏ ¿¬°áÀÌ ÇÔ²² ÀÌ·ç¾îÁ³½À´Ï´Ù. Port¹øÈ£¸¦ ÁÖÁö ¾ÊÀº °ÍÀº ¿î¿µÃ¼Á¦°¡ ÀÓÀÇ·Î Port¸¦ Á¤ÇØÁÖµµ·Ï Çϱâ À§ÇÔÀÔ´Ï´Ù. ¿©±â¼ÀÇ Port´Â Ŭ¶óÀÌ¾ðÆ®¿¡¼ »ç¿ë ÇÒ Port¹øÈ£ÀÔ´Ï´Ù. ¼¹ö ÇÁ·Î±×·¥ÀÇ Port¹øÈ£ 3000°ú Çò°¥¸®¸é ¾ÈµÇ°ÚÁÒ.
n InetAddress serverInet = InetAddress.getByName(args[0]);
»ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¼¹öÀÇ È£½ºÆ® À̸§À̳ª IP Address¸¦ ¹Þ¾Æ¿À´Â ±¸¹®ÀÔ´Ï´Ù. ¸Å°³º¯¼ö·Î ¾²¿©Áú °ªÀÔ´Ï´Ù.
n DatagramPacket packetOut = new DatagramPacket(packetBuf,2,serverInet,3000);
µåµð¾î ÆÐŶÀ» »ý¼ºÇÏ¿´½À´Ï´Ù. ¿©±â¼ »ý¼ºµÈ ÆÐŶÀº Àü¼Û¿ë ÆÐŶÀÔ´Ï´Ù. ¸Å°³º¯¼ö·Î µ¥ÀÌÅÍ, µ¥ÀÌÅÍÀÇ ±æÀÌ, ¼¹öÀÇ ÁÖ¼Ò¿Í Port¹øÈ£°¡ »ç¿ëµÇ¾ú½À´Ï´Ù.
n DatagramPacket packetIn = new DatagramPacket(packetBuf, 1024);
ÀÌ ¹ø¿¡´Â ¼¹ö¿¡¼ º¸³»ÁÙ ÆÐŶÀ» ¹Þ¾Æ³¾ ÆÐŶÀ» »ý¼ºÇÏ¿´½À´Ï´Ù. ¼ö½Å¿ë ÆÐŶÀÌÁÒ. Àü¼Û¿ë ÆÐŶÀ» »ý¼ºÇÒ ¶§¿Í ¸Å°³º¯¼ö°¡ ´Ù¸£Áö ¾Ê½À´Ï±î? ±â¾ï ÇÏ¼Å¾ß ÇÕ´Ï´Ù. À§ÀÇ ±¸¹®ÀÇ ¸Å°³º¯¼ö¸¦ º¸¸é µ¹¾Æ¿Ã µ¥ÀÌÅÍ¿Í ±× Å©±â¸¦ ÁöÁ¤ÇØ ÁÖ¾ú½À´Ï´Ù. ÀÌÁ¦ ´Ù ¸¸µé¾úÀ¸´Ï ÆÐŶÀ» º¸³»¾ß °ÚÁÒ.
n socket.send(packetOut);
n socket.receive(packetIn);
DatagramPacketŬ·¡½ºÀÇ ¸â¹ö¸Þ¼µåÀÎ send()¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ÆÐŶÀ» ¼¹ö·Î º¸³Â½À´Ï ´Ù. º¸³½ ÆÐŶÀÌ ¼¹ö¿¡ µµÂøÇÏ¸é ¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®·Î ÆÐŶÀ» º¸³»°Ô µÇ¾îÀÖ½À´Ï´Ù. º¸³»¿Â ÆÐŶÀº receive()¸Þ¼µå¸¦ ÅëÇØ ¹Þ¾Æ³½ ÈÄ ¾Æ±î »ý¼ºÇÑ ¼ö½Å¿ë ÆÐŶ¿¡ º¹»ç¸¦ ÇÏ°Ô µË´Ï´Ù. ±×·± ÈÄ¿¡ ÆÐŶÀÇ Á¤º¸¸¦ ÀÐ¾î ¿À¸é µÇ´Â °ÍÀÔ´Ï´Ù.
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù4ºÎ ÀúÀÚ:ÃÖ¿µ°ü |