JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.nio.channels
Ŭ·¡½º SocketChannel

java.lang.Object 
  |
  +--java.nio.channels.spi.AbstractInterruptibleChannel 
        |
        +--java.nio.channels.SelectableChannel 
              |
              +--java.nio.channels.spi.AbstractSelectableChannel 
                    |
                    +--java.nio.channels.SocketChannel
¸ðµç ±¸Çö ÀÎÅÍÆäÀ̽º:
ByteChannel , Channel , GatheringByteChannel , InterruptibleChannel , ReadableByteChannel , ScatteringByteChannel , WritableByteChannel

public abstract class SocketChannel
extends AbstractSelectableChannel
implements ByteChannel , ScatteringByteChannel , GatheringByteChannel

½ºÆ®¸²Çü Á¢¼Ó ¼ÒÄÏ¿ëÀÇ ¼±Åà °¡´É ä³ÎÀÔ´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº ³×Æ®¿öÅ© ¼ÒÄÏ Á¢¼ÓÀÇ ¿ÏÀüÇÑ Ãß»óÀÌ ¾Æ´Õ´Ï´Ù. ¼ÒÄÏ ¿É¼ÇÀÇ ¹ÙÀεå, Á¤Áö Á¶ÀÛÀº socket ¸Þ¼Òµå È£Ãâ¿¡ ÀÇÇØ ÃëµæÇÑ °ü·Ã Socket ¿ÀºêÁ§Æ®¸¦ °³ÀÔ½ÃÄÑ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÓÀÇÀÇ ±âÁ¸ ¼ÒÄÏÀÇ Ã¤³ÎÀ» ÀÛ¼ºÇϰųª ¼ÒÄÏ Ã¤³Î¿¡ °ü·ÃÇÑ ¼ÒÄÏÀ¸·Î SocketImpl ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇϵµ·Ï(µíÀÌ) ÁöÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº ÀÌ Å¬·¡½ºÀÇ open ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ) ÀÛ¼ºµË´Ï´Ù. »õ·Ó°Ô ÀÛ¼ºµÈ ¼ÒÄÏ Ã¤³ÎÀº ¿ÀÇÂÀÔ´Ï´Ù¸¸, ¹ÌÁ¢¼ÓÀÔ´Ï´Ù. ¹ÌÁ¢¼ÓÀÇ ¼ÒÄÏ Ã¤³Î¿¡ ´ëÇØ¼­ ÀÔÃâ·Â Á¶ÀÛÀ» È£ÃâÇÏ·Á°í Çϸé(ÀÚ),NotYetConnectedException °¡ ½½·Î¿ì µË´Ï´Ù. ¼ÒÄÏ Ã¤³ÎÀ» Á¢¼ÓÇÏ·Á¸é , ±× connect ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. Á¢¼ÓµÈ ¼ÒÄÏ Ã¤³ÎÀº Ŭ·Î¿ìÁî ÇÒ ¶§±îÁö Á¢¼ÓµÈ ä·Î ÀÖ½À´Ï´Ù. ¼ÒÄÏ Ã¤³ÎÀÌ Á¢¼ÓµÇ°í ÀÖÀ»Áö ¾î¶³Áö´Â isConnected ¸Þ¼ÒµåÀÇ È£Ãâ¿¡ ÀÇÇØ ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº ¡¸ºñºí·Ï Á¢¼Ó¡¹À» ¼­Æ÷Æ®ÇÕ´Ï´Ù. ¼ÒÄÏ Ã¤³ÎÀÇ ÀÛ¼º°ú ¸®¸ðÆ® ¼ÒÄÏ¿¡ÀÇ ¸µÅ©ÀÇ È®¸³ ÇÁ·Î¼¼½º´Â connect ¸Þ¼Òµå¿¡ ÀÇÇØ °³½ÃµÇ¾î ³ªÁß¿¡ finishConnect ¸Þ¼Òµå¿¡ ÀÇÇØ ¿Ï·áÇÕ´Ï´Ù. Á¢¼Ó Á¶ÀÛÀÌ ½ÇÇàÁßÀÏÁö ¾î¶³Áö´Â isConnectionPending ¸Þ¼ÒµåÀÇ È£Ãâ¿¡ ÀÇÇØ ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀÇ ÀÔ·ÂÃø°ú Ãâ·ÂÃøÀº ½ÇÁ¦·Î ä³ÎÀ» Ŭ·Î¿ìÁî ÇÏ´Â ÀÏ ¾øÀÌ, µû·Î µû·Î ¡¸Á¤Áö¡¹µË´Ï´Ù. °ü·Ã ¼ÒÄÏ ¿ÀºêÁ§Æ®ÀÇ shutdownInput ¸Þ¼Òµå¸¦ È£ÃâÇØ ä³ÎÀÇ ÀÔ·ÂÃøÀ» Á¤ÁöÇÑ µÚ, ÇÑÃþ ´õ ä³ÎÀ» Àо·Á°í Çϸé(ÀÚ), ½ºÆ®¸²ÀÇ ¸¶Áö¸·À» ³ªÅ¸³»´Â -1 ÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù. °ü·Ã ¼ÒÄÏ ¿ÀºêÁ§Æ®ÀÇ shutdownOutput ¸Þ¼Òµå¸¦ È£ÃâÇØ ä³ÎÀÇ Ãâ·ÂÃøÀ» Á¤ÁöÇÑ µÚ, ÇÑÃþ ´õ ä³Î¿¡ ±âÀÔÇÏ·Á°í Çϸé(ÀÚ),ClosedChannelException °¡ ½½·Î¿ì µË´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº Channel Ŭ·¡½º·Î ÁöÁ¤µÇ°í ÀÖ´Â ºñµ¿±â Ŭ·Î¿ìÁî Á¶ÀÛ°ú ÀÚÁÖ(Àß) ´àÀº ¡¸ºñµ¿±â Á¤Áö¡¹¸¦ ¼­Æ÷Æ®ÇÕ´Ï´Ù. ÇÑÆíÀÇ thread°¡ ¼ÒÄÏÀÇ Ã¤³Î¿¡ ´ëÇÑ read Á¶ÀÛÀÇ µµÁß¿¡ ºí·Ï µÇ°í Àִµ¥, ÀÌÁ¦(¹ú½á) ÇÑÆíÀÇ thread°¡ ¼ÒÄÏÀÇ ÀÔ·ÂÃøÀ» Á¤ÁöÇßÀ» °æ¿ì, ºí·Ï µÈ threadÀÇ read Á¶ÀÛÀº ¹ÙÀÌÆ®¸¦ ÀÏÀý Àо´Â ÀÏ ¾øÀÌ Á¾·áÇØ,-1 ¸¦ µ¹·ÁÁÝ´Ï´Ù. ÇÑÆíÀÇ thread°¡ ¼ÒÄÏÀÇ Ã¤³Î¿¡ ´ëÇÑ ±âÀÔ Á¶ÀÛÀÇ µµÁß¿¡ ºí·Ï µÇ°í Àִµ¥, ÀÌÁ¦(¹ú½á) ÇÑÆíÀÇ thread°¡ ¼ÒÄÏÀÇ Ãâ·ÂÃøÀ» Á¤ÁöÇßÀ» °æ¿ì, ºí·Ï µÈ thread´Â AsynchronousCloseException ¸¦ ¹Þ½À´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº º¹¼öÀÇ º´Çà thread·Î ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼ÒÄÏ Ã¤³ÎÀº º´Çà read ¹× ±âÀÔÀ» ¼­Æ÷Æ®ÇÕ´Ï´Ù. ´Ù¸¸, read¸¦ ½Ç½ÃÇÏ´Â thread¿Í ±âÀÔÀ» ½Ç½ÃÇÏ´Â thread´Â Ç×»ó 1 °³ ÀÌÇÏÀÔ´Ï´Ù. connect ¸Þ¼Òµå¿Í finishConnect ¸Þ¼Òµå´Â ¼­·Î µ¿±â Çϰí ÀÖ¾î, ¾î´À ÂÊÀÎÁö ÇÑÆíÀÇ ¸Þ¼ÒµåÀÇ È£ÃâÁß¿¡ Àоîµé¿© ¶Ç´Â ±âÀÔÇØ Á¶ÀÛÀ» °³½ÃÇÏ·Á°í Çϸé(ÀÚ), ÀÌ Ã³¸®´Â ÃÖÃÊÀÇ È£ÃâÀÌ ¿Ï·áÇÒ ¶§±îÁö ºí·Ï µË´Ï´Ù.

µµÀÔµÈ ¹öÁ¯:
1.4

»ý¼ºÀÚÀÇ °³¿ä
protected SocketChannel (SelectorProvider  provider)
          ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
 
¸Þ¼ÒµåÀÇ °³¿ä
abstract  boolean connect (SocketAddress  remote)
          ÀÌ Ã¤³ÎÀÇ ¼ÒÄÏÀ» Á¢¼ÓÇÕ´Ï´Ù.
abstract  boolean finishConnect ()
          ¼ÒÄÏ Ã¤³ÎÀÇ Á¢¼Ó 󸮸¦ ¿Ï·áÇÕ´Ï´Ù.
abstract  boolean isConnected ()
          ÀÌ Ã¤³ÎÀÇ ³×Æ®¿öÅ© ¼ÒÄÏÀÌ Á¢¼ÓµÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù.
abstract  boolean isConnectionPending ()
          ÀÌ Ã¤³Î»ó¿¡¼­ Á¢¼Ó Á¶ÀÛÀÌ ÁøÇàÁßÀΰ¡ ¾î¶²°¡¸¦ ÆÇ´ÜÇÕ´Ï´Ù.
static SocketChannel open ()
          ¼ÒÄÏ Ã¤³ÎÀ» ¿ÀÇÂÇÕ´Ï´Ù.
static SocketChannel open (SocketAddress  remote)
          ¼ÒÄÏ Ã¤³ÎÀ» ¿ÀÇÂÇØ, ¸®¸ðÆ® ÁÖ¼Ò¿¡ Á¢¼ÓÇÕ´Ï´Ù.
abstract  int read (ByteBuffer  dst)
          ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­¸¦ ÁöÁ¤ÀÇ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.
 long read (ByteBuffer [] dsts)
          ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.
abstract  long read (ByteBuffer [] dsts, int offset, int length)
          ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛÀÇ ¼­ºê ¼øÂ÷ ¼ø¼­¿¡ ÀоîµéÀÔ´Ï´Ù.
abstract  Socket socket ()
          ÀÌ Ã¤³Î¿¡ °ü·ÃÇÑ ¼ÒÄÏÀ» ÃëµæÇÕ´Ï´Ù.
 int validOps ()
          ÀÌ Ã¤³ÎÀÇ ¼­Æ÷Æ®µÇ°í ÀÖ´Â Á¶ÀÛÀ» ½Äº°ÇÏ´Â Á¶ÀÛ ¼¼Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
abstract  int write (ByteBuffer  src)
          ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­¸¦ ÁöÁ¤ÀÇ ¹öÆÛ·ÎºÎÅÍ ½á³À´Ï´Ù.
 long write (ByteBuffer [] srcs)
          ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛ·ÎºÎÅÍ ½á³À´Ï´Ù.
abstract  long write (ByteBuffer [] srcs, int offset, int length)
          ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛÀÇ ¼­ºê ¼øÂ÷ ¼ø¼­·ÎºÎÅÍ ½á³À´Ï´Ù.
 
Ŭ·¡½º java.nio.channels.spi. AbstractSelectableChannel ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
blockingLock , configureBlocking , implCloseChannel , implCloseSelectableChannel , implConfigureBlocking , isBlocking , isRegistered , keyFor , provider , register
 
Ŭ·¡½º java.nio.channels. SelectableChannel ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
register
 
Ŭ·¡½º java.nio.channels.spi. AbstractInterruptibleChannel ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
begin , close , end , isOpen
 
Ŭ·¡½º java.lang. Object ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 
ÀÎÅÍÆäÀ̽º java.nio.channels. Channel ¿¡¼­ »ó¼Ó¹ÞÀº ¸Þ¼Òµå
close , isOpen
 

»ý¼ºÀÚÀÇ »ó¼¼

SocketChannel

protected SocketChannel(SelectorProvider  provider)
ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

¸Þ¼ÒµåÀÇ »ó¼¼

open

public static SocketChannel  open()
                          throws IOException 
¼ÒÄÏ Ã¤³ÎÀ» ¿ÀÇÂÇÕ´Ï´Ù.

»õ·Î¿î ä³ÎÀ» ÀÛ¼ºÇÏ·Á¸é , ½Ã½ºÅÛ ÀüüÀÇ µðÆúÆ®ÀÇ SelectorProvider ¿ÀºêÁ§Æ®ÀÇ openSocketChannel ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù.

¹Ýȯ°ª:
»õ·Î¿î ¼ÒÄÏ Ã¤³Î
¿¹¿Ü:
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

open

public static SocketChannel  open(SocketAddress  remote)
                          throws IOException 
¼ÒÄÏ Ã¤³ÎÀ» ¿ÀÇÂÇØ, ¸®¸ðÆ® ÁÖ¼Ò¿¡ Á¢¼ÓÇÕ´Ï´Ù.

ÀÌ °£ÀÌ ¸Þ¼Òµå´Â open() ¸Þ¼ÒµåÀÇ È£Ãâ°ú °°ÀÌ ±â´ÉÇÕ´Ï´Ù. ±¸Ã¼ÀûÀ¸·Î´Â ÀÛ¼ºµÈ ¼ÒÄÏ Ã¤³Î¿¡ ´ëÇØ¼­ connect ¸Þ¼Òµå¸¦ È£ÃâÇØ, À̰ÍÀ» remote ¿¡ °Ç³×ÁÖ¾î, ±× ä³ÎÀ» µ¹·ÁÁÝ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
remote - »õ·Î¿î ä³ÎÀÇ Á¢¼Óó ¸®¸ðÆ® ÁÖ¼Ò.
¿¹¿Ü:
AsynchronousCloseException - Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
UnresolvedAddressException - ÁöÁ¤µÈ ¸®¸ðÆ® ÁÖ¼Ò°¡ ¿ÏÀüÇÏ°Ô ÇØ°áµÇÁö ¾Ê´Â °æ¿ì
UnsupportedAddressTypeException - ÁöÁ¤µÈ ¸®¸ðÆ® ÁÖ¼ÒÀÇ Å¸ÀÔÀÌ ¼­Æ÷Æ® ´ë»ó¿ÜÀÇ °æ¿ì
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ¾î, ÁöÁ¤µÈ ¸®¸ðÆ® ¿£µå Æ÷ÀÎÆ®¿¡ÀÇ ¾×¼¼½º°¡ Çã°¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

validOps

public final int validOps()
ÀÌ Ã¤³ÎÀÇ ¼­Æ÷Æ®µÇ°í ÀÖ´Â Á¶ÀÛÀ» ½Äº°ÇÏ´Â Á¶ÀÛ ¼¼Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº Á¢¼Ó, Àоîµé¿©, ±âÀÔÀ» ¼­Æ÷Æ®ÇϹǷÎ, ÀÌ ¸Þ¼Òµå´Â (SelectionKey.OP_CONNECT | SelectionKey.OP_READ | SelectionKey.OP_WRITE ) À» µ¹·ÁÁÝ´Ï´Ù.

Á¤ÀÇ:
Ŭ·¡½º SelectableChannel ³»ÀÇ validOps
¹Ýȯ°ª:
À¯È¿ÇÑ Á¶ÀÛ ¼¼Æ®

socket

public abstract Socket  socket()
ÀÌ Ã¤³Î¿¡ °ü·ÃÇÑ ¼ÒÄÏÀ» ÃëµæÇÕ´Ï´Ù.

µ¹·ÁÁÖ¾îÁö´Â ¿ÀºêÁ§Æ®´Â Socket Ŭ·¡½º¿¡¼­ ¼±¾ðµÇ¾î ÀÖÁö ¾ÊÀº °ø°³ ¸Þ¼Òµå´Â ¼±¾ðÇÏÁö ¾Ê½À´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³Î¿¡ °ü·ÃÇÑ ¼ÒÄÏ

isConnected

public abstract boolean isConnected()
ÀÌ Ã¤³ÎÀÇ ³×Æ®¿öÅ© ¼ÒÄÏÀÌ Á¢¼ÓµÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³ÎÀÇ ³×Æ®¿öÅ© ¼ÒÄÏÀÌ Á¢¼ÓµÇ°í ÀÖ´Â °æ¿ì¿¡ ÇÑÇØ true

isConnectionPending

public abstract boolean isConnectionPending()
ÀÌ Ã¤³Î»ó¿¡¼­ Á¢¼Ó Á¶ÀÛÀÌ ÁøÇàÁßÀΰ¡ ¾î¶²°¡¸¦ ÆÇ´ÜÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³Î»ó¿¡¼­ Á¢¼Ó Á¶ÀÛÀÌ °³½ÃµÇ°í ÀÖ¾î, ¾ÆÁ÷ ¿Ï·áÇϰí ÀÖÁö ¾Ê´Â (finishConnect ¸Þ¼Òµå°¡ ºÒ·Á °¡Áö ¾Ê¾Ò´Ù) °æ¿ì¿¡ ÇÑÇØ true

connect

public abstract boolean connect(SocketAddress  remote)
                         throws IOException 
ÀÌ Ã¤³ÎÀÇ ¼ÒÄÏÀ» Á¢¼ÓÇÕ´Ï´Ù.

ÀÌ Ã¤³ÎÀÌ ºñºí·Ï ¸ðµåÀÇ °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ È£Ãâ¿¡ ÀÇÇØ, ºñºí·Ï Á¢¼Ó Á¶ÀÛÀÌ °³½ÃµË´Ï´Ù. ·ÎÄà Á¢¼ÓÀÇ °æ¿ì¿Í °°ÀÌ Áï¼®¿¡¼­ Á¢¼ÓÀÌ È®¸³µÇ´Â °æ¿ì, ÀÌ ¸Þ¼Òµå´Â true ¸¦ µ¹·ÁÁÝ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â false ¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ °æ¿ì´Â ³ªÁß¿¡ finishConnect ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î, Á¢¼Ó Á¶ÀÛÀ» ¿Ï·áÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ÀÌ Ã¤³ÎÀÌ ºí·Ï ¸ðµåÀÇ °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀº Á¢¼ÓÀÌ È®¸³µÉ±î ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇÒ ¶§±îÁö ºí·Ï µË´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â Socket Ŭ·¡½º¿Í ¿ÏÀüÈ÷ °°Àº ½ÃÅ¥·¯Æ¼ üũ¸¦ ½Ç½ÃÇÕ´Ï´Ù. ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ±× checkConnect ¸Þ¼Òµå°¡ ÁöÁ¤µÈ ¸®¸ðÆ® ¿£µå Æ÷ÀÎÆ®ÀÇ ÁÖ¼Ò ¹× Æ÷Åä ¹øÈ£¿¡ÀÇ Á¢¼ÓÀ» Çã°¡ÇÏ´Â °ÍÀ» È®ÀÎÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϰí ÀÖ´Â µµÁß¿¡ ÀÌ Ã¤³Î¿¡ ´ëÇÑ read ¶Ç´Â ±âÀÔÇØ Á¶ÀÛÀ» È£ÃâÇßÀ» °æ¿ì, ÃÖÃÊÀÇ È£ÃâÀÌ ¿Ï·áÇÒ ¶§±îÁö ´ÙÀ½ÀÇ È£ÃâÀº ºí·Ï µË´Ï´Ù. Á¢¼ÓÇÏ·Á°í ÇßÁö¸¸ ½ÇÆÐÇßÀ» °æ¿ì, Áï ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀÌ Ã¼Å© ¿¹¿Ü¸¦ ½½·Î¿ì ÇÏ´Â °æ¿ì, ä³ÎÀº Ŭ·Î¿ìÁî µË´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
remote - ÀÌ Ã¤³ÎÀÇ Á¢¼Óó ¸®¸ðÆ® ÁÖ¼Ò.
¹Ýȯ°ª:
Á¢¼ÓÀÌ È®¸³µÇ¾úÀ» °æ¿ì true, ÀÌ Ã¤³ÎÀÌ ºñºí·Ï ¸ðµå·Î, Á¢¼Ó Á¶ÀÛÀÇ ½ÇÇàÁßÀÎ °æ¿ì´Â false
¿¹¿Ü:
AlreadyConnectedException - ÀÌ Ã¤³ÎÀÌ ¹ú½á Á¢¼ÓµÇ°í ÀÖ´Â °æ¿ì
ConnectionPendingException - ÀÌ Ã¤³Î·Î ¹ú½á ºñºí·Ï Á¢¼Ó Á¶ÀÛÀÌ ½ÇÇàÁßÀÎ °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException - Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
UnresolvedAddressException - ÁöÁ¤µÈ ¸®¸ðÆ® ÁÖ¼Ò°¡ ¿ÏÀüÇÏ°Ô ÇØ°áµÇÁö ¾Ê´Â °æ¿ì
UnsupportedAddressTypeException - ÁöÁ¤µÈ ¸®¸ðÆ® ÁÖ¼ÒÀÇ Å¸ÀÔÀÌ ¼­Æ÷Æ® ´ë»ó¿ÜÀÇ °æ¿ì
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ¾î, ÁöÁ¤µÈ ¸®¸ðÆ® ¿£µå Æ÷ÀÎÆ®¿¡ÀÇ ¾×¼¼½º°¡ Çã°¡µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

finishConnect

public abstract boolean finishConnect()
                               throws IOException 
¼ÒÄÏ Ã¤³ÎÀÇ Á¢¼Ó 󸮸¦ ¿Ï·áÇÕ´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀ» ºñºí·Ï ¸ðµå·Î ÇØ, ±× connect ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ºñºí·Ï Á¢¼Ó Á¶ÀÛÀÌ °³½ÃµË´Ï´Ù. Á¢¼ÓÀÌ È®¸³µÇ´ÂÁö Á¢¼Ó¿¡ ½ÇÆÐÇÑ µÚ, ¼ÒÄÏ Ã¤³ÎÀº Á¢¼Ó °¡´ÉÇÑ »óŰ¡ µË´Ï´Ù. ¿©±â¼­, Á¢¼Ó ¼øÂ÷ ¼ø¼­¸¦ ¿Ï·áÇϱâ À§Çؼ­, ÀÌ ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. Á¢¼Ó Á¶ÀÛ¿¡ ½ÇÆÐÇßÀ» °æ¿ì, ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ) ÀûÀýÇÑ IOException °¡ ½½·Î¿ì µË´Ï´Ù.

ÀÌ Ã¤³ÎÀÌ ¹ú½á Á¢¼ÓµÇ°í ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ºí·Ï µÇ¾î Áï½Ã true ¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ Ã¤³ÎÀÌ ºñºí·Ï ¸ðµåÀÇ °æ¿ì, Á¢¼Ó 󸮰¡ ¾ÆÁ÷ ¿Ï·áÇϰí ÀÖÁö ¾ÊÀ¸¸é, ÀÌ ¸Þ¼Òµå´Â false ¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ Ã¤³ÎÀÌ ºí·Ï ¸ðµåÀÇ °æ¿ì, Á¢¼ÓÀÌ ¿Ï·áÇÏ´ÂÁö ½ÇÆÐÇÒ ¶§±îÁö ÀÌ ¸Þ¼Òµå´Â ºí·Ï µË´Ï´Ù. µ¡ºÙ¿© Á¢¼ÓÀÌ ¿Ï·áÇßÀ» °æ¿ì´Â true °¡ µ¹·ÁÁÖ¾îÁ® Á¢¼Ó¿¡ ½ÇÆÐÇßÀ» °æ¿ì´Â üũ ¿¹¿Ü°¡ ½½·Î¿ì µË´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϰí ÀÖ´Â µµÁß¿¡ ÀÌ Ã¤³Î¿¡ ´ëÇÑ read ¶Ç´Â ±âÀÔÇØ Á¶ÀÛÀ» È£ÃâÇßÀ» °æ¿ì, ÃÖÃÊÀÇ È£ÃâÀÌ ¿Ï·áÇÒ ¶§±îÁö ´ÙÀ½ÀÇ È£ÃâÀº ºí·Ï µË´Ï´Ù. Á¢¼ÓÇÏ·Á°í ÇßÁö¸¸ ½ÇÆÐÇßÀ» °æ¿ì, Áï ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀÌ Ã¼Å© ¿¹¿Ü¸¦ ½½·Î¿ì ÇÏ´Â °æ¿ì, ä³ÎÀº Ŭ·Î¿ìÁî µË´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³ÎÀÇ ¼ÒÄÏÀÌ Á¢¼ÓµÇ°í ÀÖ´Â °æ¿ì¿¡ ÇÑÇØ true
¿¹¿Ü:
NoConnectionPendingException - ÀÌ Ã¤³ÎÀÌ Á¢¼ÓµÇÁö ¾Ê°í Á¢¼Ó Á¶ÀÛµµ °³½ÃµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException - Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Á¢¼Ó Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

public abstract int read(ByteBuffer  dst)
                  throws IOException 
ÀÎÅÍÆäÀ̽º ReadableByteChannel ÀÇ ±â¼ú:
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­¸¦ ÁöÁ¤ÀÇ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.

ä³Î·ÎºÎÅÍ ÃÖ´ë r ¹ÙÀÌÆ®¸¦ Àо·Á°í ÇÕ´Ï´Ù. r ´Â ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ ¹öÆÛ³»¿¡ Á¸ÀçÇÏ´Â ¹ÙÀÌÆ®¼ö,dst.remaining() °¡ µË´Ï´Ù.

±æÀÌ n (0 <= n <= r)ÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÀоÁø´Ù°í ÇÕ´Ï´Ù. ÀÌ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ¹öÆÛ¿¡ Àü¼Û µÇ±â (À§ÇØ)¶§¹®¿¡, ¼øÂ÷ ¼ø¼­³»ÀÇ ÃÖÃÊÀÇ ¹ÙÀÌÆ®ÀÇ À妽º´Â p, ¸¶Áö¸· ¹ÙÀÌÆ®ÀÇ À妽º´Â p + n - 1 ÀÌ µË´Ï´Ù. µ¡ºÙ¿©p ´Â ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ÀÇ ¹öÆÛÀÇ À§Ä¡ÀÔ´Ï´Ù. ¹öÆÛÀÇ À§Ä¡´Â µ¹·ÁÁÖ¾îÁú ¶§ p + n ¿¡ µ¿ÀÏÇØÁý´Ï´Ù. ¸®¹ÔÆ®¿¡ º¯È­´Â ¾ø½À´Ï´Ù.

read Á¶ÀÛ¿¡ ÀÇÇØ ¹öÆÛ°¡ °¡µæ µÈ´Ù°í´ÂÀΰ¡ ¼±. ¹ÙÀÌÆ®°¡ ÀÏÀý ÀоÁöÁö ¾ÊÀº °æ¿ìµµ ÀÖ½À´Ï´Ù. ¹öÆÛ°¡ °¡µæ µÉÁö ¾î¶³Áö´Â ä³ÎÀÇ º»·¡ÀÇ ¼ºÁú°ú »óÅ¿¡ ÀÇÇØ °áÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ºñºí·Ï ¸ðµåÀÇ ¼ÒÄÏÀº ¼ÒÄÏÀÇ ÀÔ·Â ¹öÆÛ·ÎºÎÅÍ Áï½Ã ÃëµæÇÒ ¼ö ÀÖ´Â ¹ÙÀÌÆ® Àܸ̿¦ Àо ¼ö°¡ ¾ø½À´Ï´Ù. °°ÀÌ ÆÄÀÏ Ã¤³ÎÀº ÆÄÀϳ»ÀÇ ¹ÙÀÌÆ® Àܸ̿¦ Àо ¼ö°¡ ¾ø½À´Ï´Ù. ´Ù¸¸, ä³ÎÀÌ ºí·Ï ¸ðµåÀ̸ç, ¹öÆÛ³»ÀÇ ¹ÙÀÌÆ®¼ö°¡ 1 ¹ÙÀÌÆ® ÀÌ»óÀÇ °æ¿ì, 1 ¹ÙÀÌÆ® ÀÌ»óÀÌ ÀоÁú ¶§±îÁö ÀÌ ¸Þ¼Òµå´Â ºí·Ï µÇ°Ô µÇ¾î ÀÖ½À´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, ±× ¿ÜÀÇ thread°¡ ÀÌ Ã¤³Î¿¡ ´ëÇØ¼­ Àоîµé¿© Á¶ÀÛÀ» °³½ÃÇϰí ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀº ÃÖÃÊÀÇ Á¶ÀÛÀÌ ³¡³¯ ¶§±îÁö ºí·Ï µË´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ReadableByteChannel ³»ÀÇ read
ÆÄ¶ó¹ÌÅÍ:
dst - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
¹Ýȯ°ª:
ÀÐÈù ij¸¯Åͼö. Á¦·ÎÀΰ¡, ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

public abstract long read(ByteBuffer [] dsts,
                          int offset,
                          int length)
                   throws IOException 
ÀÎÅÍÆäÀ̽º ScatteringByteChannel ÀÇ ±â¼ú:
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛÀÇ ¼­ºê ¼øÂ÷ ¼ø¼­¿¡ ÀоîµéÀÔ´Ï´Ù.

ÀÌ ¸Þ¼Òµå È£ÃâÀº ÀÌ Ã¤³Î·ÎºÎÅÍ ÃÖ´ë r ¹ÙÀÌÆ®¸¦ Àо·Á°í ÇÕ´Ï´Ù. r ´Â ÀÌ ¸Þ¼ÒµåÀÇ È£Ãâ½Ã·Î ÁöÁ¤µÈ ¹öÆÛ ¹è¿­ÀÇ ÁöÁ¤µÈ ¼­ºê ¼øÂ÷ ¼ø¼­¿¡ Æ÷ÇԵǴ ÇÕ°è ¹ÙÀÌÆ®¼öÀÔ´Ï´Ù.

 dsts[offset]. remaining()
     + dsts[offset+1]. remaining()
     + ... + dsts[offset+length-1]. remaining()

±æÀÌ n (0 <= n <= r)ÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÀоÁø´Ù°í ÇÕ´Ï´Ù. ÀÌ ¼øÂ÷ ¼ø¼­ÀÇ ÃÖÃÊÀÇ dsts[offset]. remaining() ¹ÙÀÌÆ®±îÁö°¡ ¹öÆÛ dsts[offset] ¿¡ Àü¼Û µÇ¾î ´ÙÀ½ÀÇ dsts[offset+1]. remaining() ¹ÙÀÌÆ®±îÁö°¡ ¹öÆÛ dsts[offset+1] ¿¡ Àü¼Û µË´Ï´Ù. ÀÌ Ã³¸®´Â ¸ðµç ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛ¿¡ Àü¼Û µÉ ¶§±îÁö ¹Ýº¹ÇØÁý´Ï´Ù. °¢ ¹öÆÛ¿¡´Â ÃÖ´ëÇÑÀÇ ¹ÙÀÌÆ®°¡ Àü¼Û µÇ±â (À§ÇØ)¶§¹®¿¡, ÃÖÁ¾ °»½Å ¹öÆÛ¸¦ Á¦¿ÜÇÑ °³°³ÀÇ °»½Å ¹öÆÛÀÇ ÃÖÁ¾ÀûÀÎ À§Ä¡´Â ÀÌ ¹öÆÛÀÇ ¸®¹ÔÆ®¿Í µ¿ÀÏÇØÁý´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, ±× ¿ÜÀÇ thread°¡ ÀÌ Ã¤³Î¿¡ ´ëÇØ¼­ Àоîµé¿© Á¶ÀÛÀ» °³½ÃÇϰí ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀº ÃÖÃÊÀÇ Á¶ÀÛÀÌ ³¡³¯ ¶§±îÁö ºí·Ï µË´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScatteringByteChannel ³»ÀÇ read
ÆÄ¶ó¹ÌÅÍ:
dsts - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
offset - ÃÖÃÊÀÇ ¹ÙÀÌÆ®ÀÇ Àü¼Ûó°¡ µÇ´Â ¹öÆÛ ¹è¿­³»ÀÇ ¿ÀÇÁ¼Â(offset). dsts.length ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
length - ¾×¼¼½º °¡´ÉÇÑ ÃÖ´ë ¹öÆÛ¼ö. dsts.length - offset ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
¹Ýȯ°ª:
ÀÐÈù ij¸¯Åͼö. Á¦·ÎÀΰ¡, ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

public final long read(ByteBuffer [] dsts)
                throws IOException 
ÀÎÅÍÆäÀ̽º ScatteringByteChannel ÀÇ ±â¼ú:
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ c.read(dsts) ÀÇ Çü½Ä¿¡¼­ È£ÃâÇßÀ» °æ¿ì, ´ÙÀ½ÀÇ È£Ãâ°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

 c.read(dsts, 0, srcs.length);

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScatteringByteChannel ³»ÀÇ read
ÆÄ¶ó¹ÌÅÍ:
dsts - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
¹Ýȯ°ª:
ÀÐÈù ij¸¯Åͼö. Á¦·ÎÀΰ¡, ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

public abstract int write(ByteBuffer  src)
                   throws IOException 
ÀÎÅÍÆäÀ̽º WritableByteChannel ÀÇ ±â¼ú:
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­¸¦ ÁöÁ¤ÀÇ ¹öÆÛ·ÎºÎÅÍ ½á³À´Ï´Ù.

ä³Î¿¡ ÃÖ´ë r ¹ÙÀÌÆ®¸¦ ±âÀÔÇÏ·Á°í ÇÕ´Ï´Ù. r ´Â ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§ ¹öÆÛ³»¿¡ Á¸ÀçÇÏ´Â ¹ÙÀÌÆ®¼ö,dst.remaining() °¡ µË´Ï´Ù.

±æÀÌ n (0 <= n <= r)ÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ±âÀÔÇØÁø´Ù°í ÇÕ´Ï´Ù. ÀÌ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­´Â ¹öÆÛÀÇ À妽º p ·ÎºÎÅÍ Àü¼Û µË´Ï´Ù. p ´Â ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÑ ½ÃÁ¡ÀÇ ¹öÆÛÀÇ À§Ä¡ÀÔ´Ï´Ù. ±âÀÔÇØÁö´Â ¸¶Áö¸· ¹ÙÀÌÆ®´Â p + n - 1 ÀÌ µË´Ï´Ù. ¹öÆÛÀÇ À§Ä¡´Â Á¾·á½Ã¿¡ p + n ¿¡ µ¿ÀÏÇØÁý´Ï´Ù. ¸®¹ÔÆ®¿¡ º¯È­´Â ¾ø½À´Ï´Ù.

ƯÈ÷ ÁöÁ¤ÀÌ ¾ø´Â ÇÑ, ¿ä±¸µÈ r ¹ÙÀÌÆ®°¡ ¸ðµÎ ±âÀÔÇØÁö¸é(ÀÚ) ±âÀÔ Á¶ÀÛÀº Á¾·áÇÕ´Ï´Ù. ä³ÎÀÇ Á¾·ù¿¡ µû¶ó¼­´Â ±× »óÅ¿¡ ÀÀÇØ, ÀϺÎÀÇ ¹ÙÀÌÆ® ¹Û¿¡ ±âÀÔÇØÁöÁö ¾ÊÀº °æ¿ì³ª, ÀüÇô ±âÀÔÀ» ÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ºñºí·Ï ¸ðµåÀÇ ¼ÒÄÏ Ã¤³Î¿¡¼­´Â ¼ÒÄÏÀÇ Ãâ·Â ¹öÆÛ³»ÀÇ ¹ÙÀÌÆ®¼ö°¡ ÃÖ´ë ±âÀÔ ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, ±× ¿ÜÀÇ thread°¡ ÀÌ Ã¤³Î¿¡ ´ëÇØ¼­ ±âÀÔÇØ Á¶ÀÛÀ» °³½ÃÇϰí ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀº ÃÖÃÊÀÇ Á¶ÀÛÀÌ ³¡³¯ ¶§±îÁö ºí·Ï µË´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º WritableByteChannel ³»ÀÇ write
ÆÄ¶ó¹ÌÅÍ:
src - ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³ ¹öÆÛ
¹Ýȯ°ª:
±âÀÔÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

public abstract long write(ByteBuffer [] srcs,
                           int offset,
                           int length)
                    throws IOException 
ÀÎÅÍÆäÀ̽º GatheringByteChannel ÀÇ ±â¼ú:
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛÀÇ ¼­ºê ¼øÂ÷ ¼ø¼­·ÎºÎÅÍ ½á³À´Ï´Ù.

ÀÌ Ã¤³Î¿¡ ÃÖ´ë r ¹ÙÀÌÆ®¸¦ ±âÀÔÇÏ·Á°í ÇÕ´Ï´Ù. r ´Â ÀÌ ¸Þ¼ÒµåÀÇ È£Ãâ½Ã·Î ÁöÁ¤µÈ ¹öÆÛ ¹è¿­ÀÇ ÁöÁ¤µÈ ¼­ºê ¼øÂ÷ ¼ø¼­¿¡ Æ÷ÇԵǴ ÇÕ°è ¹ÙÀÌÆ®¼öÀÔ´Ï´Ù.

 srcs[offset]. remaining()
     + srcs[offset+1]. remaining()
     + ... + srcs[offset+length-1]. remaining()

±æÀÌ n (0 <= n <= r)ÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ±âÀÔÇØÁø´Ù°í ÇÕ´Ï´Ù. ÀÌ ¼øÂ÷ ¼ø¼­ÀÇ ÃÖÃÊÀÇ srcs[offset]. remaining()¹ÙÀÌÆ®±îÁö°¡ ¹öÆÛ srcs[offset] ¿¡ ±âÀÔÇØÁ® ´ÙÀ½ÀÇ srcs[offset+1]. remaining() ¹ÙÀÌÆ®°¡ ¹öÆÛ srcs[offset] ·ÎºÎÅÍ ¹öÆÛ srcs[offset+1] ¿¡ ±âÀÔÇØÁý´Ï´Ù. ÀÌ Ã³¸®´Â ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­ ÀüºÎ°¡ ±âÀÔÇØÁú ¶§±îÁö ¹Ýº¹ÇØÁý´Ï´Ù. °¢ ¹öÆÛ·ÎºÎÅÍ ÃÖ´ëÇÑÀÇ ¹ÙÀÌÆ®°¡ ±âÀÔÇØÁö±â (À§ÇØ)¶§¹®¿¡, °»½ÅµÈ °³°³ÀÇ ¹öÆÛÀÇ ÃÖÁ¾ÀûÀÎ À§Ä¡´Â ÃÖÁ¾ °»½Å ¹öÆÛ¸¦ Á¦¿ÜÇØ, ÀÌ ¹öÆÛÀÇ ¸®¹ÔÆ®¿Í µ¿ÀÏÇØÁý´Ï´Ù.

ƯÈ÷ ÁöÁ¤ÀÌ ¾ø´Â ÇÑ, ¿ä±¸µÈ r ¹ÙÀÌÆ®°¡ ¸ðµÎ ±âÀÔÇØÁö¸é(ÀÚ) ±âÀÔ Á¶ÀÛÀº Á¾·áÇÕ´Ï´Ù. ä³ÎÀÇ Á¾·ù¿¡ µû¶ó¼­´Â ±× »óÅ¿¡ ÀÀÇØ, ÀϺÎÀÇ ¹ÙÀÌÆ® ¹Û¿¡ ±âÀÔÇØÁöÁö ¾ÊÀº °æ¿ì³ª, ÀüÇô ±âÀÔÀ» ÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ºñºí·Ï ¸ðµåÀÇ ¼ÒÄÏ Ã¤³Î¿¡¼­´Â ¼ÒÄÏÀÇ Ãâ·Â ¹öÆÛ³»ÀÇ ¹ÙÀÌÆ®¼ö°¡ ÃÖ´ë ±âÀÔ ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¸, ±× ¿ÜÀÇ thread°¡ ÀÌ Ã¤³Î¿¡ ´ëÇØ¼­ ±âÀÔÇØ Á¶ÀÛÀ» °³½ÃÇϰí ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀº ÃÖÃÊÀÇ Á¶ÀÛÀÌ ³¡³¯ ¶§±îÁö ºí·Ï µË´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º GatheringByteChannel ³»ÀÇ write
ÆÄ¶ó¹ÌÅÍ:
srcs - ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³ ¹öÆÛ
offset - ÃÖÃÊÀÇ ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³°¡ µÇ´Â ¹öÆÛ ¹è¿­³»ÀÇ ¿ÀÇÁ¼Â(offset). srcs.length ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
length - ¾×¼¼½º °¡´ÉÇÑ ÃÖ´ë ¹öÆÛ¼ö. srcs.length - offset ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
¹Ýȯ°ª:
±âÀÔÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

public final long write(ByteBuffer [] srcs)
                 throws IOException 
ÀÎÅÍÆäÀ̽º GatheringByteChannel ÀÇ ±â¼ú:
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛ·ÎºÎÅÍ ½á³À´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ c.write(srcs) ÀÇ Çü½Ä¿¡¼­ È£ÃâÇßÀ» °æ¿ì, ´ÙÀ½ÀÇ È£Ãâ°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

 c.write(srcs, 0, srcs.length);

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º GatheringByteChannel ³»ÀÇ write
ÆÄ¶ó¹ÌÅÍ:
srcs - ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³ ¹öÆÛ
¹Ýȯ°ª:
±âÀÔÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

¹ö±×ÀÇ º¸°í¿Í ±â´ÉÀÇ ¸®Äù½ºÆ®
ÀÌ¿ÜÀÇ API ·¹ÆÛ·±½º ¹× °³¹ßÀÚ¿ë ¹®¼­¿¡ ´ëÇØ¼­´Â Java 2 SDK SE °³¹ßÀÚ¿ë ¹®¼­¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. °³¹ßÀÚÀü¿ëÀÇ »ó¼¼ÇÑ ÇØ¼³, °³³äÀÇ °³¿ä, ¿ë¾îÀÇ Á¤ÀÇ, ¹ö±×ÀÇ È¸ÇÇÃ¥, ¹× ÄÚµå ½Ç·Ê°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.

Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ À־ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.