org.wegra.net
Class Client

java.lang.Object
  extended byorg.wegra.net.Client
All Implemented Interfaces:
java.lang.Runnable

public abstract class Client
extends java.lang.Object
implements java.lang.Runnable

ServerSocket°ú ¦À» ÀÌ·ï communicate Çϴ Ŭ¶óÀÌ¾ðÆ® Ãø ¼ÒÄÏÀÌ´Ù. »ç¿ë¹ýÀº ServerSocketÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.

Version:
1.0 (2001-08-31)
Author:
wegra (Bok-Youn Lee)

Constructor Summary
Client()
           
 
Method Summary
 void close()
          ¼ÒĹÀ» ´Ý´Â´Ù.
protected  void closePost()
          close() ¸Þ¼Òµå°¡ ¼ÒÄÏÀ» ´ÝÀº ÈÄ¿¡ È£ÃâÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù.
protected  void closePre()
          close() ¸Þ¼Òµå°¡ ¼ÒÄÏÀ» ´Ý±â Àü¿¡ È£ÃâÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù. .¼ÒÄÏÀ» ´Ý±â Àü ¼±Çà ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù¸é ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å ÇÏ¿© ¾²µµ·Ï ÇÑ´Ù.
protected abstract  void communicate(java.net.Socket client)
          GoF Ã¥ÀÇ "ÅÛÇø´ ¸Þ¼Òµå"ÀÌ´Ù.
abstract  Client replicate()
          ¹Ì¸® ÃʱâÈ­ µÈ ÇöÀç °´Ã¼¸¦ ¹ÝȯÇÑ´Ù.
 void run()
           
 void setHandlers(java.util.LinkedList handlers)
          ClientHannnndlers¸¦ ¼³Á¤ÇÑ´Ù.
 void setSocket(java.net.Socket socket)
          ¼ÒĹÀ» ¼³Á¤ÇÑ´Ù.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Client

public Client()
Method Detail

close

public final void close()
                 throws java.io.IOException
¼ÒĹÀ» ´Ý´Â´Ù.
ÁÖÀÇ] º» ¸Þ¼Òµå´Â ÇÏÀ§ Ŭ·¡½º¿¡¼­ ½ºÆ®¸²À» ´ÝÀ» ½Ã Ãß°¡ÀûÀÎ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖµµ·Ï ¼ÒÄÏÀ» ´Ý´Â ÀÛ¾÷ ÀüÈÄ¿¡ preClose()¿Í postClose() ¸Þ¼Òµå¸¦ È£ÃâÇϰí ÀÖ´Ù. close() ÀÛ¾÷ ½Ã Ãß°¡ÀûÀÎ ¸¶¹«¸® ÀÛ¾÷À» ¿øÇÒ ½Ã ÀÌµé ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å Çϵµ·Ï ÇÏÀÚ. ÇÏÀ§ Ŭ·¡½º¿¡¼­ close() ¸Þ¼Òµå¸¦ À߸ø ¿À¹ö¶óÀ̵åÇÏ¿© ¼ÒÄÏÀ» ´ÝÁö ¾ÊÀ» ¼ö Àֱ⠶§¹®¿¡ ¾à°£ÀÇ ¿À¹öÇØµå¸¦ °¨¼ÒÇÏ¿´´Ù.

Throws:
java.io.IOException

replicate

public abstract Client replicate()
¹Ì¸® ÃʱâÈ­ µÈ ÇöÀç °´Ã¼¸¦ ¹ÝȯÇÑ´Ù. ÀÌ ¸Þ¼Òµå´Â clone() °ú ºñ½ÁÇÏÁö¸¸ º¹Á¦µÈ °ÍÀÌ ÇÁ·ÎÅäŸÀÔ°ú µ¿ÀÏÇÏÁö ¾Ê¾Æµµ µÈ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. ¾î·°Å³ª clone() Àº protected À̹ǷΠ¾²±â°¡ ºÒÆíÇÏ´Ù.


run

public final void run()
Specified by:
run in interface java.lang.Runnable

setHandlers

public final void setHandlers(java.util.LinkedList handlers)
ClientHannnndlers¸¦ ¼³Á¤ÇÑ´Ù.


setSocket

public final void setSocket(java.net.Socket socket)
¼ÒĹÀ» ¼³Á¤ÇÑ´Ù.


communicate

protected abstract void communicate(java.net.Socket client)
GoF Ã¥ÀÇ "ÅÛÇø´ ¸Þ¼Òµå"ÀÌ´Ù. ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å ÇØ¼­ Ŭ¶óÀÌ¾ðÆ®°¡ Á¢¼ÓÇßÀ» ¶§ ÇØ¾ßÇÒ ÀÛ¾÷µéÀ» Á¤ÇØÁÙ ¼ö ÀÖ´Ù. client ¼ÒÄÏÀº ÀÌ¹Ì Å¬¶óÀÌ¾ðÆ®¿Í ¿¬°áÀÌ µÈ »óÅ¿¡¼­ ³Ñ¾î¿À¸ç communicate(0 °¡ º¹±ÍÇϸé ÀÚµ¿À¸·Î Á¾·áµÈ´Ù. communicate() ´Â °¢°¢ º°°³ÀÇ ½º·¹µå¿¡¼­ ÀÛµ¿ÇÑ´Ù. ClientSocket °´Ã¼´Â »ç¿ëÇÑ ÀÌÈÄ¿¡µµ °¡ºñÁö ÄÝ·ºÆÃ µÇÁö ¾Ê´Â´Ù. ´ë½Å ÀÌ °´Ã¼´Â ´ÙÀ½ Ä¿³Ø¼Ç¿¡ Àç»ç¿ëµÈ´Ù. µû¶ó¼­, communicate() ¸Þ¼Òµå¿¡¼­´Â Ç×»ó Client °´Ã¼¿¡ ´ëÇÑ ÃʱâÈ­¸¦ ÇØÁÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ, º¹±ÍÇϱâ Àü¿¡ ÀÚ½ÅÀÌ »ç¿ëÇϰí ÀÖ´ø ¸ðµç ÂüÁ¶ÀÚ¿¡ null À» ÇÒ´çÇØÁÖ¾î¾ß ÇÑ´Ù(ÀÌ·¡¾ß¸¸ »ç¿ëµÇ¾ú´ø ÀÚ¿øµéÀÌ °¡ºñÁö ÄÝ·ºÆÃ µÉ ¼ö ÀÖ°Ô µÈ´Ù). ÀÌ ¸Þ¼Òµå¿¡¼­ ¹ß»ýÇÏ´Â ¸ðµç ¿¹¿Ü´Â ¹«½ÃµÈ´Ù. ÀÌ·± ¹æ½ÄÀº ºÐ¸í ±×¸® ÁÁÀº ¹æ½ÄÀº ¾Æ´ÏÁö¸¸ ¹ü¿ëÀûÀÎ °ÍÀ» »ý°¢ÇÏ´Ùº¸´Ï µüÈ÷ ¾î¶»°Ô ÇØ º¼ µµ¸®°¡ ¾ø¾ú´Ù. °á·ÐÀûÀ¸·Î, ¸ðµç ¿¹¿Ü 󸮴 communicate() ³»ºÎ¿¡¼­ ¾Ë¾Æ¼­ ÇØ¾ß ÇÑ´Ù.


closePost

protected void closePost()
close() ¸Þ¼Òµå°¡ ¼ÒÄÏÀ» ´ÝÀº ÈÄ¿¡ È£ÃâÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù. ¼ÒÄÏÀ» ´ÝÀº ÈÄ Ãß°¡ÀûÀÎ ¸¶¹«¸® ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù¸é ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å ÇÏ¿© »ç¿ëÇϵµ·Ï ÇÏÀÚ. Creation date: (2001-09-14 ¿ÀÀü 6:27:53)


closePre

protected void closePre()
close() ¸Þ¼Òµå°¡ ¼ÒÄÏÀ» ´Ý±â Àü¿¡ È£ÃâÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù. .¼ÒÄÏÀ» ´Ý±â Àü ¼±Çà ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù¸é ÀÌ ¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å ÇÏ¿© ¾²µµ·Ï ÇÑ´Ù. Creation date: (2001-09-14 ¿ÀÀü 6:26:38)