1. ¼ÒÄÏ ÇÁ·Î±×·¡¹ÖÀ̶õ?
Ŭ¶óÀ̾ðÆ®¿Í ¼¹ö°£¿¡ ¼·Î Åë½ÅÀ» ÇÏ¸é¼ Á¤º¸¸¦ ÁÖ°í ¹ÞÀ» ¶§ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥À» ¸»ÇÕ´Ï´Ù. ¼¹ö´Â ¼¹ö¿¡ ÇØ´çÇÏ´Â ¼ÒÄÏÀ» ¸¸µé°í Ŭ¶óÀ̾ðÆ®´Â Ŭ¶óÀ̾ðÆ®¿¡ ÇØ´çÇÏ´Â ¼ÒÄÏÀ» ¸¸µì´Ï´Ù. ÀÌ·¸°Ô ¸¸µç ¼ÒÄÏ ÀÌ ¿¬°áµÇ¾î ¼·Î °£Ã¼ µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í ¹Þ´Â ±â´ÉÀ» ÇÏ°Ô µÇ´Â °ÍÀÔ´Ï´Ù. ÀÚ¹Ù¿¡¼´Â ¼ÒÄÏ ÇÁ·Î±×·¡¹ÖÀÌ ±²ÀåÈ÷ Æí¸®ÇÕ´Ï´Ù. ÀÌÁ¦ ÀÌ·± ¼ÒÄÏÀ» À§ÇÑ ÇÁ·Î±×·¥¹Ö ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
2. ¼ÒÄÏ ¿¬°á¹æ¹ý
¼ÒÄÏ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀº STAND ALONE, Áï LAN°ú ¿¬°áµÇÁö ¾ÊÀº ÄÄÇ»ÅÍ¿¡¼´Â ½ÇÇàÀ» ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. LANÀÌ ¿¬°áµÈ ÄÄÇ»ÅÍ¿¡¼ ¼·ÎÀÇ IP ÁÖ¼Ò¸¦ ã¾Æ¼ ¿¬°áµÇ±â ¶§¹®¿¡ ¼ÒÄÏ ÇÁ·Î±×·¥Àº ÁÖ·Î LAN¿¡¼³ª ¶Ç´Â ±¤¿ª LAN Áï WAN¿¡¼ ¼·Î ´Ù¸¥ ÄÄÇ»ÅÍ¿¡ µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í ¼Û½ÅÀ» ¹Þ´Â µ¥ »ç¿ëÇÕ´Ï´Ù. ¼ÒÄÏ(Socket)À¸·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í µ¥ÀÌÅ͸¦ ¹Þ´Â µ¥´Â 2°¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
Stream Socket ¹æ¹ý°ú Datagram Socket ¹æ¹ýÀÔ´Ï´Ù. Stream Socket ¿¬°á ¹æ¹ýÀº ¼¹ö°¡ ½ÇÇàµÇ¸é¼ Ŭ¶óÀ̾ðÆ®¸¦ ±â´Ù¸³´Ï´Ù. ÀÌ ¶§ Ŭ¶óÀ̾ðÆ®°¡ ÀÚ½ÅÀÇ ÁÖ¼Ò¸¦ ¼¹ö ÇÁ·Î±×·¥¿¡°Ô ÁÝ´Ï´Ù. ¼¹ö´Â ÁÖ¼Ò¸¦ ¹Þ°í Ŭ¶óÀ̾ðÆ® ÄÄÇ»ÅÍ¿¡ Á¢±ÙÇÏ´Â ±æÀ» ¼³Á¤ÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®°¡ ¿ÏÀüÈ÷ ¿Â¶óÀÎÀ» ÀÌ·ç°Ô µÇ¾î Åë½ÅÀÌ ½ÃÀ۵Ǵ °ÍÀÔ´Ï´Ù. Datagram Socket ¿¬°á ¹æ¹ýÀº ÇÑ ÄÄÇ»ÅÍ°¡ ¾î¶² µ¥ÀÌÅ͸¦ ´ã¾Æ¼ ƯÁ¤ ÄÄÇ»ÅÍ IP ÁÖ¼Ò·Î ¹«Á¶°Ç º¸³»´Â °Ì´Ï´Ù. Áï »óÈ£ ¿Â¶óÀÎ ¿¬°áÀ» ÇÏÁö ¾ÊÀº »óÅ¿¡¼ ¹«Á¶°Ç »ó´ë ÄÄÇ»ÅÍ IP ÁÖ¼Ò·Î µ¥ÀÌÅÍ°¡ ´Þ·Á°¡´Â °ÍÀÌÁö¿ä. ÀÌ·¸°Ô ÇÏ¿© »ó´ë¹æ ÄÄÇ»ÅÍ¿¡ µµ´ÞÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. Datagram Socket ¹æ¹ýÀº µ¥ÀÌÅÍ¿¡ ¼øÂ÷¼ºÀÌ ¾ø½À´Ï´Ù.
±×·¯´Ï±î 1¹ø µ¥ÀÌÅÍ, 2¹ø µ¥ÀÌÅÍ, 3¹ø µ¥ÀÌÅ͸¦ Â÷·Ê´ë·Î ƯÁ¤ ÄÄÇ»ÅÍ¿¡ º¸³¾ ¶§ µé¾î¿À´Â µ¥ÀÌÅÍ°¡ 1¹ø, 2¹ø, 3¹ø ÀÌ·¸°Ô µé¾î¿À´Â °ÍÀÌ ¾Æ´Ï°í ¸ÕÀú µµÂøÇÑ µ¥ÀÌÅÍ°¡ ¸ÕÀú µé¾î¿À±â ¶§¹®¿¡ 1, 3, 2 ¶Ç´Â 3, 2, 1 µî ¼ø¼°¡ ¸¶±¸ ¹Ù²î¾î¼ µé¾î¿Ã ¼ö ÀÖ½À´Ï´Ù.
±×·¸±â ¶§¹®¿¡ Datagram SocketÀº µ¥ÀÌÅÍ Çì´õ¿¡ º¸³»´Â µ¥ÀÌÅÍÀÇ ¸î ¹ø° ºí·ÏÀ̶ó´Â °ÍÀ» ¼³Á¤ÇØ ÁÖ°í »ó´ë ÄÄÇ»ÅÍ¿¡ Àü¼ÛÇØ¾ß ÇÕ´Ï´Ù.
¹Ý¸é Stream SocketÀº ¿Â¶óÀÎÀ¸·Î ¿¬°áµÇ¾î ÀÖ´Â »óÅ¿¡¼ µ¥ÀÌÅ͸¦ º¸³»±â ¶§¹®¿¡ 1, 2, 3 ¼ø¼·Î µ¥ÀÌÅ͸¦ º¸³»¸é 1, 2, 3 ¼ø¼·Î µ¥ÀÌÅ͸¦ ¹Þ½À´Ï´Ù.
.;SN03
;TI¼ÒÄÏÇÁ·Î±×·¡¹Ö(2)-SeverSocket Ŭ·¡½º
;TX
Stream Socket ¼¹ö Ŭ·¡½º SeverSocket
SeverSocketŬ·¡½º´Â ¼¹ö¸¦ ¿¡¼ ¸¸µå´Â Ŭ·¡½ºÀÔ´Ï´Ù. ¼¹ö¿¡¼´Â ¼ÒÄÏÀ» ¸¸
µé ¶§ Æ÷Æ® ¹øÈ£¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ Æ÷Æ® ¹øÈ£´Â Ŭ¶óÀ̾ðÆ®°¡ ã¾Æ°¡
±âÀ§ÇÑ ÇϳªÀÇ °Ë»ö ¹øÈ£¶ó°í º¼¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¼¹ö¿¡¼ Æ÷Æ® ¹øÈ£¸¦ 100À¸
·Î ¼³Á¤ÇØÁÖ¾ú´Ù¸é Ŭ¶óÀ̾ðÆ®´Â 100À¸·Î ¼³Á¤µÈ Æ÷Æ®¸¦ ã¾Æ¼ ¼¹ö¿¡ °ª´Ï´Ù.
ÀÌ Æ÷Æ®°¡ ¸ÂÁö ¾ÊÀ¸¸é Ŭ¶óÀ̾ðÆ®¿Í ¼¹ö°¡ ¿¬°áµÉ ¼ö°¡ ¾ø½À´Ï´Ù. ±×·¸±â ¶§
¹®¿¡ »ý¼ºÀÚ¿¡ Æ÷Æ®¹øÈ£¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù.
SeverSocket =sScoket;
sSocket=new ServerSocket(2000);
ÀÌÁ¦ ¼¹ö´Â Ŭ¶óÀ̾ðÆ®°¡ ¿À±â¸¦ ±â´Ù¸®¸é µË´Ï´Ù. ÀÌ·¸°Ô ±â´Ù¸®´Â ÇÔ¼ö°¡
acceptÀÔ´Ï´Ù.
sSocket.accept();
Áß¿äÇÑ °ÍÀº Ç׽à ±â´Ù·Á¾ß µÈ´Ù´Â °ÍÀÔ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ½º·¹µå¸¦ ÀÌ¿ëÇÏ´Â
°ÍÀÌ ÁÁ½À´Ï´Ù. ½º·¹µåÀÇ runºÎºÐ¿¡ ¹«ÇÑ´ë·Î ±â´Ù¸®´Â ·çƾÀ» ¼³Á¤ÇÏ´Â °ÍÀÌÁö
¿ä. accept()ÇÔ¼ö´Â Ŭ¶óÀ̾ðÆ®°¡ ¿¬°áµÇ¸é Ŭ¶óÀ̾ðÆ®°¡ ¿¬°áµÈ Socket Ŭ·¡½º
¸¦ ¸®ÅÏÇÕ´Ï´Ù.
public void run()
{
while(true)
{
try{
sClient=sSocket.accept();
if(sClient!=null)
{
//Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÇϸé sClient°¡ nullÀÌ ¾Æ´Ï´Ù.
// À̶§´Â Å»ÃâÀ» ÇÑ´Ù.
}
}catch(IOException e){}
}
}
accept()ÇÔ¼ö¿¡ ÀÇÇؼ Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÀÌ µÇ¸é Á¢¼ÓµÈ Ŭ¶óÀ̾ðÆ®¿¡ µ¥ÀÌÅÍ
¸¦ º¸³»±â À§ÇÑ ½ºÆ®¸²À» ¼³Á¤ÇÕ´Ï´Ù. À̶§ »ç¿ëÇϴ Ŭ·¡½º´Â
PrintStream Ŭ·¡½º ÀÔ´Ï´Ù.
PrintStream out=new PrintStream(sClient.getOutputStream());
´ÙÀ½À¸·Î´Â Ŭ¶ó¾ðÆ®·Î ºÎÅÍ µ¥ÀÌÅ͸¦ ¹ÞÀ» Ŭ·¡½º¸¦ ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ°ÍÀº ÀüÀåÀÇ URL¿¡¼ »ç¿ëÇѹæ¹ý°ú °°½À´Ï´Ù. Áï InputStreamÀ¸·Î ¿¬°áÀ»
¹Þ°í ÀÌ°ÍÀ» Buff·Î ÀÌ°ÍÀ» ´Ù½Ã Data½ºÆ®¸²À¸·Î ¿¬°áÀ» ÇÏ´Â °ÍÀÔ´Ï´Ù.
InputStream inn=sClient.getInputStream();
BufferedInputStream buffInput= new BufferedInputStream(inn);
DataInputStream dataInput= new DataInputStream(buffInput);
ÀÌ·¸°Ô ÇÑÈÄ¿¡ ³Ñ¾î ¿À´Â µ¥ÀÌÅ͸¦ readLine()ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¹Þ¾Æ¼ Ãâ·ÂÀ»
ÇØÁÖ¸é µË´Ï´Ù.
.;SN03
;TI¼ÒÄÏÇÁ·Î±×·¡¹Ö(3)-Socket Ŭ·¡½º
;TX
Stream Socket Ŭ¶óÀ̾ðÆ® Ŭ·¡½º Socket
Ŭ¶óÀ̾ðÆ® ¼ÒÄÏ Å¬·¡½º´Â À§ÀÇ ¼¹ö Ŭ·¡½º¿¡¼µµ »ç¿ëÇÑ Socket¸¦ »ç¿ëÇÕ´Ï
´Ù. ÀÌ ¼ÒÄÏÀÇ »ý¼ºÀÚ¿¡ Á¢¼ÓÇÏ°íÀÚ Çϴ ȣ½ºÆ®¿Í ¼³Á¤µÈ Æ÷Æ®¹øÈ£¸¦ ÀÔ·ÂÇϸé
¿¬°áÀ» ÇÒ¼ö ÀÖ½À´Ï´Ù.
Socket sClient=new Socket("vision.hanyang.ac.kr",2000);
ÀÌ·¸°Ô ÇÏ¿© sClientŬ·¡½º°¡ nullÀÌ ¾Æ´Ï¸é ¿¬°áÀÌ µÈ°ÍÀÔ´Ï´Ù. ÀÌ·¸°Ô ¿¬°áÀÌ
µÇ¸é À§ÀÇ ¼¹ö¿Í ¸¶Âù°¡Áö·Î ÀÔ·Â ½ºÆ®¸²°ú Ãâ·Â ½ºÆ®¸²À» ¿¬°á½Ãŵ´Ï´Ù.
¼¹ö Á¢¼Ó¿¹Á¦ ExNet03.java
¼¹ö Á¢¼Ó¿¹Á¦ ÇÁ·Î±×·¥ ExNet03.java´Â ÇϳªÀÇ ¼¹ö ¼ÒÄÏÀ» ¸¸µçµÚ¿¡ Ŭ¶óÀÌ
¾ðÆ®¸¦ ±â´Ù¸®°í Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÀÌ µÇ¸é ¿¬°áÀÌ µÇ¾ú´Ù´Â ¸Þ½ÃÁö¿Í Ŭ¶óÀÌ
¾ðÆ®¿¡ Àλ縦 º¸³»´Â ¿¹Á¦ ÀÔ´Ï´Ù.
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
public class ExNet03 extends Applet implements Runnable
{
Thread myThread;
ServerSocket sSocket;
Socket sClient;
PrintStream out;
InputStream inn;
String s;
public void init()
{
sClient=null;
out=null;
try{
//Æ÷Æ® ¹øÈ£ ¼³Á¤
sSocket=new ServerSocket(2000);
} catch(Exception e){}
s="¿¬°á¾ÈµÇ¾úÀ½";
}
public void paint(Graphics g)
{
g.drawString(s,10,10);
}
{{
}}public void start()
{
myThread=new Thread(this);
myThread.start();
}
//½º·¹µå ½ÇÇà
public void run()
{
while(true)
{
try{
//°è¼ÓÀûÀ¸·Î Ŭ¶óÀ̾ðÆ®¸¦ ±â´Ù¸°´Ù.
sClient=sSocket.accept();
//Ŭ¶óÀ̾ðÆ®°¡ ¿À¸é
if(sClient!=null)
{
//Ãâ·ÂÇÒ Åë·Î¸¦ ¸¸µé°í
out=new PrintStream(sClient.getOutputStream());
//ÀÔ·Â ¹ÞÀ» Åë·Î¸¦ ¸¸µç´Ù.
inn=sClient.getInputStream();
s="¿¬°áµÇ¾úÀ½";
//Àλ縻À» º¸³½´Ù.
out.println("hi! ");
repaint();
break;
}
}catch(IOException e){}
}
}
}
.;SN03
;TI¼ÒÄÏÇÁ·Î±×·¡¹Ö(4)-Ŭ¶óÀ̾ðÆ® Á¢¼Ó ¿¹Á¦
;TX
Ŭ¶óÀ̾ðÆ® Á¢¼Ó¿¹Á¦ ExNet04.java
ExNet04.java´Â ¼¹ö¿¡ Á¢¼ÓÇÏ´Â ¿¹Á¦ ÀÔ´Ï´Ù. ÀÌÇÁ·Î±×·¥Àº ExNet03.java¿Í ÇÔ
²² »ç¿ëÀ» ÇØ¾ß ÇÕ´Ï´Ù. À̶§ Á¢¼Ó ÁÖ¼Ò´Â ÀÚ½ÅÀÇ ÁÖ¼Ò·Î ¹Ù²Ù¾î¾ß ÇÕ´Ï´Ù.
sClient=new Socket("166.104.136.64",2000);
Áï À§¿Í °°ÀÌ µÇ¾îÀÖ´Â 166.104.136.64ÀÇ ÁÖ¼Ò¸¦ ¼¹ö°¡ ÀÖ´Â ÁÖ¼Ò·Î ¹Ù²Ù¾î ÁÖ
¾î¾ß ÇÕ´Ï´Ù.
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
public class ExNet04 extends Applet implements Runnable
{
Thread myThread;
Socket sClient;
String s;
InputStream sInput;
BufferedInputStream buffInput;
DataInputStream dataInput;
String data;
public void init()
{
s="¾øÀ½";
data=null;
}
public void paint(Graphics g)
{
g.drawString(s,10,10);
}
public void start()
{
myThread=new Thread(this);
myThread.start();
}
public void run()
{
while(true)
{
try{
//¼¹ö¿¡ Á¢¼ÓÀ» ÇÑ´Ù.
sClient=new Socket("166.104.136.64",2000);
}
catch(Exception e){}
//Á¢¼ÓÀÌ µÇ¸é
if(sClient!=null)
{
try{
//ÀÔ·Â ½ºÆ®¸²À» ¸¸µé°í
sInput=sClient.getInputStream();
buffInput= new BufferedInputStream(sInput);
dataInput= new DataInputStream(buffInput);
break;
}catch(IOException e){}
}
}
while(true)
{
//µ¥ÀÌÅ͸¦ Àб⠽ÃÀÛÇÏ¿©
try{
data=dataInput.readLine();
}catch(IOException e){}
if(data!=null)
{
//ÀÐÀº µ¥ÀÌÅ͸¦ ȸ鿡 Ãâ·ÂÇÑ´Ù.
s=data;
data=null;
}
repaint();
}
}
}
.;SN03
;TI¼ÒÄÏÇÁ·Î±×·¡¹Ö(5)-äÆà ÇÁ·Î±×·¥ ¿¹Á¦
;TX
äÆà ÇÁ·Î±×·¥ ¿¹Á¦ ExNet05.java ¿Í ExNet06.java
ExNet05.java´Â ¼¹ö¿ë äÆà ÇÁ·Î±×·¥À̸ç ExNet06.java´Â Ŭ¶óÀ̾ðÆ®¿ë äÆÃ
ÇÁ·Î±×·¥ÀÔ´Ï´Ù. Áö±Ý±îÁö ¼³¸íÇÑ ³»¿ëÀ» ÀÌÇØÇÏ¿´´Ù¸é ¼Ò½º¸¸ º¸½Ã°íµµ ¾Æ½Ç¼ö
ÀÖÀ»°Ì´Ï´Ù.
//ExNet05.java äÆà ÇÁ·Î±×·¥ ¼¹ö
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
public class ExNet05 extends Applet implements Runnable
{
Thread myThread;
ServerSocket sSocket;
Socket sClient;
PrintStream out;
InputStream inn;
BufferedInputStream buffInput;
DataInputStream dataInput;
String s;
TextField sendData;
TextField receiveData;
Button sendbutton;
public void init()
{
s="¿¬°á¾ÈµÊ";
sendbutton=new Button("º¸³»±â");
sendData= new TextField("",20);
receiveData=new TextField(s,20);
add(receiveData);
add(sendData);
add(sendbutton);
sClient=null;
out=null;
try{
sSocket=new ServerSocket(2555);
} catch(Exception e){}
}
public void paint(Graphics g)
{
g.drawString(s,10,100);
}
public void start()
{
myThread=new Thread(this);
myThread.start();
}
public void run()
{
while(true)
{
try{
sClient=sSocket.accept();
if(sClient!=null)
{
out=new PrintStream(sClient.getOutputStream());
inn=sClient.getInputStream();
buffInput= new BufferedInputStream(inn);
dataInput= new DataInputStream(buffInput);
s="¿¬°á µÇ¾úÀ½";
receiveData.setText(s);
out.println("hi! ");
repaint();
break;
}
}catch(IOException e){}
}
s=null;
while(true)
{
try{
s=dataInput.readLine();
}catch(IOException e){}
if(s!=null)
{
receiveData.setText(s);
}
s=null;
repaint();
}
}
public boolean action(Event evt, Object arg)
{
String str = sendData.getText();
try
{
out.println(str);
}
catch (IOException e)
{
}
return true;
}
public void stop()
{
out.close();
myThread.stop();
}
}
//ExNet06.java äÆà ÇÁ·Î±×·¥ Ŭ¶óÀ̾ðÆ® ¿¹Á¦
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
public class ExNet06 extends Applet implements Runnable
{
Thread myThread;
Socket sClient;
String s;
InputStream sInput;
BufferedInputStream buffInput;
DataInputStream dataInput;
String data;
TextField sendData;
TextField receiveData;
Button sendbutton;
PrintStream out;
public void init()
{
s="¾øÀ½";
data=null;
sendbutton=new Button("º¸³»±â");
sendData= new TextField("",20);
receiveData=new TextField(s,20);
add(receiveData);
add(sendData);
add(sendbutton);
}
public void paint(Graphics g)
{
g.drawString(s,10,100);
}
public void start()
{
myThread=new Thread(this);
myThread.start();
}
public void run()
{
while(true)
{
try{
sClient=new Socket("166.104.136.64",2555);
}
catch(Exception e){}
if(sClient!=null)
{
try{
out=new PrintStream(sClient.getOutputStream());
sInput=sClient.getInputStream();
buffInput= new BufferedInputStream(sInput);
dataInput= new DataInputStream(buffInput);
break;
}catch(IOException e){}
}
}
while(true)
{
try{
data=dataInput.readLine();
}catch(IOException e){}
if(data!=null)
{
s=data;
receiveData.setText(s);
data=null;
}
repaint();
}
}
public boolean action(Event evt, Object arg)
{
String str = sendData.getText();
try
{
out.println(str);
}
catch (IOException e)
{
}
return true;
}
public void stop()
{
out.close();
myThread.stop();
}
}
º»¿¹Á¦ ÇÁ·Î±×·¥Àº ÇѱÛÀÌ Áö¿øÀÌ ¾ÈµË´Ï´Ù. ¿µ¹®¸¸ °¡´ÉÇÑ ÇüÅ ÀÔ´Ï´Ù. ÀÌÇÁ
·Î±×·¥¿¡¼ ÇѵéÀ» Áö¿øÇϱâ À§Çؼ´Â ¹ÙÀÌÆ® Äڵ带 ÀüȯÇØ¾ß ÇÕ´Ï´Ù. ¶Ç´Â
CGI ¿¡¼ ¼³¸íÇÏ°ÚÁö¸¸ ¸ðµç µ¥ÀÌÅ͸¦ 16Áø¼ö ÄÚµå·Î ¹Ù²Ù¾î Àü¼ÛÀ» ÇÑ´ÙÀ½ ¹Þ
´Â Ãø¿¡¼ µ¥ÀÌÅ͸¦ ´Ù½Ã ¹®ÀÚ¿·Î ¹Ù²Ù¾î¼ ÀúÀåÀ» Çϸé ÇѱÛÀÌ ³ªÅ¸³ª°Ô µÇ
¾î ÀÖ½À´Ï´Ù.
.;SN03
;TI¼ÒÄÏÇÁ·Î±×·¡¹Ö(6)-µ¥ÀÌÅÍ ±×·¥ ¼ÒÄÏ
;TX
µ¥ÀÌÅͱ׷¥ ¼ÒÄÏ ¼Û½Å
µ¥ÀÌÅͱ׷¥ ¼ÒÄÏÀº ´Ü¼øÈ÷ º¸³¾ µ¥ÀÌÅ͸¦ ÆÐŶÀ¸·Î ¸¸µé¾î ¾Õ¿¡ º¸³¾ »ó´ë¹æ
ÁÖ¼Ò¸¦ Àû¾î¼ ³¯·Áº¸³½´Â ÀÏÀ» ÇÕ´Ï´Ù.
¼Û½ÅÀ» ÇÒ °æ¿ì ¸ÕÀú ¼Û½ÅÇÒ µ¥ÀÌÅÍ ÆÐŶÀ» ¸¸µé¾î¾ß ÇÕ´Ï´Ù. µ¥ÀÌÅÍ ÆÐŶÀ» ¸¸
µé ¶§ »ç¿ëÇϴ Ŭ·¡½º°¡ DatagramPacketÀÔ´Ï´Ù. ÀÌ »ý¼ºÀÚ´Â ´ÙÀ½°ú °°½À´Ï
´Ù.
public DatagramPacket(byte ibuf[], int ilength,
InetAddress iaddr, int iport)
µ¥ÀÌÅÍ°¡ µé¾î ÀÖ´Â ibuf[]¸¦ ilentht±æÀ̸¸Å iaddrÁÖ¼Ò·Î Æ÷Æ®°¡ iportÀÎ °ªÀ¸·Î
¼Û½ÅÀ» ÇÏÀÚ´Â À̾߱â ÀÔ´Ï´Ù.
´ÙÀ½À¸·Î µ¥ÀÌÅÍ ±×·¥ ¼ÒÄÏÀ» ¸¸µì´Ï´Ù. À̶§ »ç¿ëÇϴ Ŭ·¡½º´Â
DatagramSocket ÀÔ´Ï´Ù.
DatagramSocket¾È¿¡ ÀÖ´Â send()ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅ͸¦ º¸³»¸é µË´Ï´Ù.
´ÙÀ½Àº ¼Û½Å ¿¹Á¦ ÀÔ´Ï´Ù.
DatagramPacket packet= new DatagramPacket(buff,10,
InetAddress.getByName("vision.hanyang.ac.kr"),2000);
DatagramSocket so=new DatagramSocket();
so.send(packet); //µ¥ÀÌÅ͸¦ º¸³½´Ù.
so.close()//¼ÒÄÏÀ» ´Ý´Â´Ù.
µ¥ÀÌÅͱ׷¥ ¼ÒÄÏ ¼ö½Å
µ¥ÀÌÅÍÀÇ ¼ö½ÅÀÇ À§ÀÇ ¼Û½Å°ú °°Àº ÇüÅ·Π¸¸µì´Ï´Ù. ÀÌ·¸°Ô ¸¸µç´ÙÀ½ send°¡
¾Æ´Ñ receive()ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ µ¥ÀÌÅ͸¦ ¹ÞÀ¸¸é µË´Ï´Ù.
DatagramPacket packet= new DatagramPacket(buff,10,
InetAddress.getByName("vision.hanyang.ac.kr"),2000);
DatagramSocket so=new DatagramSocket();
so.send(packet); //µ¥ÀÌÅ͸¦ ¹Þ´Â´Ù.
so.close()//¼ÒÄÏÀ» ´Ý´Â´Ù.
receive()ÇÔ¼ö¸¦ ½ÇÇà½ÃÅ°¸é buff¿¡ ¹ÞÀº µ¥ÀÌÅÍ°¡ µé¾î°¡ ÀÖ½À´Ï´Ù.