±Û¾´ÀÌ :¼ÛÁ¤±Ô 1999³â 8¿ù 24ÀÏ 17:58:13
¾È³çÇϽʴϱî?
Àú´Â Çѱ¹°Ç¼³±â¼ú¿¬±¸¿ø¿¡ ´Ù´Ï´Â ¼ÛÁ¤±ÔÀÔ´Ï´Ù.
´Ù¸§ÀÌ ¾Æ´Ï¶ó Á¦°¡ ¾ÖÇø´À» ÅëÇØ ¿ø°ÝÁö¿¡ ÀÖ´Â ¼¹ö¿¡ ÀÖ´Â ÇÁ·Î±×·¥À» ½ÇÇà½Ãų·Á°í äÆÃÇÁ·Î±×·¥ÀÇ Å¬¶óÀ̾ðÆ®¸¦ ¼öÁ¤Çؼ ¿ø°ÝÁöÀÇ Æ÷Æ®¿Í È£½ºÆ®À̸§À» ÅëÇØ Á¢¼Ó¿¡ ¼º°øÇß½À´Ï´Ù. ±×·± ÈÄ ¼¹öÀÇ ÇÁ·Î±×·¥°ú ¾à¼ÓÇÏ¿© Á¦°¡ ¹öÆ°À» Ŭ¸¯ÇØ 1À» º¸³»¸é ¼¹öÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇµµ·Ï ¼¹öÇÁ·Î±×·¥µµ ÄÚµùÀÌ µÈ »óÅÂÀÔ´Ï´Ù. ±×·±µ¥ Ŭ¶óÀ̾ðÆ®¿¡¼ ¼¹ö¿¡ Á¢¼ÓÈÄ ¹öÆ°À» ´©¸£¸é ¾î¶»°Ô 1À» º¸³¾Áö ±× ÇÁ·Î±×·¥À» ¸ð¸£°Ú½À´Ï´Ù.
¿¹¸¦ µé¾î codeÁ» ÂüÁ¶ÇÒ ¼ö ÀÖÀ»±î¿ä
¸¹Àº Á¶¾ð ºÎŹµå¸³´Ï´Ù.
±×¸®°í Á¦°¡ ¼öÁ¤ÇÑ Å¬¶óÀ̾ðÆ® ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
//Applet parameter
//host=host name
//port=host port
public class DataComm extends Applet implements Runnable, ActionListener {
protected DataInputStream i;
protected DataOutputStream o;
protected TextArea output;
protected TextField input;
protected Thread listener ;
Button connect,play,stop; //¹öÆ°À» Ãß°¡ÇÑ´Ù. À§¿¡
//ÃÖÃÊ ½ÃÇà
public void init(){
setLayout (new BorderLayout(5,10)); //±âº» ¼³Á¤
Panel top=new Panel();
top.setLayout(new FlowLayout());
connect=new Button("¿¬°á") ;
connect.addActionListener(this);
play=new Button("½ÇÇà");
play.addActionListener(this);
stop=new Button("ÁßÁö");
stop.addActionListener(this);
top.add(connect);
top.add(play);
top.add(stop);
add("North", top);
setVisible(true);
//ÅýºÆ® ¿µ¿ª ¼³Á¤
add("Center" , output=new TextArea());
output.setEditable(false); //³»¿ëÀ» ¼öÁ¤ÇÒ ¼ö ¾ø´Ù.
add("South" ,input=new TextField());
input.setEditable(false); //³»¿ëÀ» ¼öÁ¤ÇÒ ¼ö ¾ø´Ù.
}
public void start() {
listener= new Thread (this); //runnable()À» targetÀ¸·Î Àâ´Â´Ù.
listener.start(); //½º·¹µå ½ÃÀÛ run()À» È£Ãâ
}
public void stop() {
if(listener !=null)
listener.stop();
listener=null;
}
public void run() {
//try ~catch¹® ½ÃÀÛ
try
{
//ÆĶó¹ÌÅÍ Ãß°¡
String host=" È£½ºÆ® ";
if(host==null)
host =getCodeBase().getHost();
String port="3000";
if(port==null)
port= "9830";
output.appendText("Connection to "+host+ ":" +port+ "...");
Socket s=new Socket(host, Integer.parseInt(port));
//µ¥ÀÌÅÍ´Â java.ioÀÇ InputStream°ú OutputStreamÀ» ÀÌ¿ëÇÏ¿© ÀÐÀ» ¼ö ÀÖ´Ù.
i=new DataInputStream (new BufferedInputStream (s.getInputStream()));
o=new DataOutputStream (new BufferedOutputStream (s.getOutputStream()));
output.appendText("Connected...\n");
input.setEditable(true);
input.requestFocus();
execute();
}catch(IOException ex) {
ByteArrayOutputStream out=new ByteArrayOutputStream();
ex.printStackTrace( new PrintStream(out));
output.appendText("\n" +out);
} //try~ catch¹® Á¾·á
}
public void execute() {
//try ~catch¹® ½ÃÀÛ
try
{
while(true) { //while¹® ½ÃÀÛ
String line=i.readUTF();
output.appendText(line +"\n");
}//while¹® Á¾·á
} catch(IOException ex) {
ByteArrayOutputStream out=new ByteArrayOutputStream();
ex.printStackTrace( new PrintStream(out));
output.appendText(out.toString());
}finally {
listener=null;
input.hide();
validate();
//try ~catch¹® ½ÃÀÛ
try
{
o.close();
}catch(IOException ex) {
ex.printStackTrace();
}
}
}
public void actionPerformed(ActionEvent e) {
}
public boolean handleEvent(Event e) {
if((e.target==input) && (e.id==Event.ACTION_EVENT)) {
//try ~catch ¹® ½ÃÀÛ
try
{
o.writeUTF((String)e.arg);
o.flush();
}catch(IOException ex) {
ex.printStackTrace();
listener.stop();
}
input.setText("");
return true;
}
else if((e.target==this)&&(e.id== Event.WINDOW_DESTROY))
{
if(listener!=null)
listener.stop();
hide();
return true;
}
return super.handleEvent(e);
}
}