JavaTM 2 Platform
Standard Ed. 5.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
¸ðµç ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º:
Closeable, 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 Ŭ·¡½º·Î °¡¸®Å°´Â ºñµ¿±â Ŭ·Î¿ìÁî Á¶ÀÛ°ú ÀÚÁÖ ´àÀº ¡¸ºñµ¿±â Á¤Áö¡¹¸¦ Áö¿ø ÇÕ´Ï´Ù. ¼ÒÄÏÀÇ Ã¤³Î¿¡ ´ëÇÑ read Á¶ÀÛÀÇ µµÁß¿¡ ºí·Ï µÈ thread°¡ ÀÖÀ» ¶§, ´Ù¸¥ thread°¡ ¼ÒÄÏÀÇ ÀÔ·ÂÃøÀ» Á¤ÁöÇßÀ» °æ¿ì, ºí·Ï µÈ threadÀÇ read Á¶ÀÛÀº ¹ÙÀÌÆ®¸¦ ÀÏÀý Àо´Â ÀÏ ¾øÀÌ Á¾·áÇØ, -1¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¼ÒÄÏÀÇ Ã¤³Î¿¡ ´ëÇÑ Ãâ·Â Á¶ÀÛÀÇ µµÁß¿¡ ºí·Ï µÈ thread°¡ ÀÖÀ» ¶§, ´Ù¸¥ thread°¡ ¼ÒÄÏÀÇ Ãâ·ÂÃøÀ» Á¤ÁöÇßÀ» °æ¿ì, ºí·Ï µÈ thread´Â AsynchronousCloseException¸¦ ¹Þ½À´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº º¹¼öÀÇ º´Çà thread·Î ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼ÒÄÏ Ã¤³ÎÀº º´Çà read ¹× º´Çà write¸¦ Áö¿ø ÇÕ´Ï´Ù. ´Ù¸¸, read¸¦ ½Ç½ÃÇÏ´Â thread¿Í write¸¦ ½Ç½ÃÇÏ´Â 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
 
ÀÎÅÍÆäÀ̽º java.nio.channels. Channel ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
close, isOpen
 
ÀÎÅÍÆäÀ̽º java.nio.channels. Channel ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼­µå
close, isOpen
 
ÀÎÅÍÆäÀ̽º 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() ¸Þ¼­µå¸¦ È£ÃâÇØ, ÀÛ¼ºµÈ ¼ÒÄÏ Ã¤³Î¿¡ ´ëÇؼ­ remote¸¦ ÁöÁ¤ÇÑ connect ¸Þ¼­µå¸¦ È£ÃâÇßÀ» °æ¿ì¿Í °°ÀÌ ±â´ÉÇÕ´Ï´Ù. ¹Ýȯ°ªÀº ÀÛ¼ºµÈ ä³ÎÀÔ´Ï´Ù.

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

validOps

public final int validOps()
ÀÌ Ã¤³ÎÀÇ Áö¿ø µÇ°í ÀÖ´Â Á¶ÀÛÀ» ½Äº°ÇÏ´Â Á¶ÀÛ ¼¼Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¼ÒÄÏ Ã¤³ÎÀº Á¢¼Ó, Àбâ, write¸¦ Áö¿ø ÇϹǷΠÀÌ ¸Þ¼­µå´Â (SelectionKey.OP_CONNECT | SelectionKey.OP_READ | SelectionKey.OP_WRITE )À» ¸®ÅÏÇÕ´Ï´Ù.

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

socket

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

¸®ÅÏµÈ °´Ã¼´Â Socket Ŭ·¡½º¿¡¼­ ¼±¾ðµÇ¾î ÀÖÁö ¾ÊÀº public ¸Þ¼­µå´Â ¼±¾ðÇÏÁö ¾Ê½À´Ï´Ù.

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

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 ¶Ç´Â Ãâ·ÂÁ¶ÀÛÀ» È£ÃâÇßÀ» °æ¿ì, È£Ãâ 󸮰¡ ¿Ï·áÇÒ ¶§±îÁö ±× Á¶ÀÛÀº ºí·Ï µË´Ï´Ù. Á¢¼ÓÇÏ·Á°í ÇßÁö¸¸ ½ÇÆÐÇßÀ» °æ¿ì, Áï ÀÌ ¸Þ¼­µåÀÇ È£ÃâÀÌ Ã¼Å©µÇ´Â ¿¹¿Ü¸¦ Throw ÇßÀ» °æ¿ì, ä³ÎÀº Ŭ·Î¿ìÁî µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
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 ¶Ç´Â Ãâ·ÂÁ¶ÀÛÀ» È£ÃâÇßÀ» °æ¿ì, È£Ãâ 󸮰¡ ¿Ï·áÇÒ ¶§±îÁö ±× Á¶ÀÛÀº ºí·Ï µË´Ï´Ù. Á¢¼ÓÀÌ ½ÇÆÐÇßÀ» °æ¿ì, Áï ÀÌ ¸Þ¼­µåÀÇ È£ÃâÀÌ Ã¼Å©µÇ´Â ¿¹¿Ü¸¦ Throw ÇßÀ» °æ¿ì, ä³ÎÀº Ŭ·Î¿ìÁî µË´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³ÎÀÇ ¼ÒÄÏÀÌ Á¢¼ÓµÇ°í ÀÖ´Â °æ¿ì¿¡ ÇÑÁ¤ÇØ 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 - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
¹Ýȯ°ª:
ÀÐÈù ¹®ÀÚ¼ö. Á¦·ÎÀΰ¡ ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
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 ¾Æ·¡ÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
¹Ýȯ°ª:
ÀÐÈù ¹®ÀÚ¼ö. Á¦·ÎÀΰ¡ ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

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

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

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

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScatteringByteChannel ³»ÀÇ read
ÆĶó¹ÌÅÍ:
dsts - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
¹Ýȯ°ª:
ÀÐÈù ¹®ÀÚ¼ö. Á¦·ÎÀΰ¡ ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
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 ¹ÙÀÌÆ®°¡ ¸ðµÎ Ãâ·ÂÇØÁö¸é Ãâ·Â Á¶ÀÛÀº Á¾·áÇÕ´Ï´Ù. ä³ÎÀÇ Á¾·ù¿¡ µû¶ó¼­´Â ±× »óÅ¿¡ ÀÀÇØ, ÀϺÎÀÇ ¹ÙÀÌÆ® ¹Û¿¡ Ãâ·ÂÇØÁöÁö ¾ÊÀº °æ¿ì³ª, ÀüÇô write¸¦ ÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ºñºí·Ï ¸ðµåÀÇ ¼ÒÄÏ Ã¤³Î¿¡¼­´Â ¼ÒÄÏÀÇ Ãâ·Â ¹öÆÛ³»ÀÇ ¹ÙÀÌÆ®¼ö°¡ ÃÖ´ë Ãâ·Â ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù.

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

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º WritableByteChannel ³»ÀÇ write
ÆĶó¹ÌÅÍ:
src - ¹ÙÀÌÆ®ÀÇ Ãëµæó ¹öÆÛ
¹Ýȯ°ª:
Ãâ·ÂÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
NotYetConnectedException - ÀÌ Ã¤³ÎÀÌ ¾ÆÁ÷ Á¢¼ÓµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
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 ¹ÙÀÌÆ®°¡ ¸ðµÎ Ãâ·ÂÇØÁö¸é Ãâ·Â Á¶ÀÛÀº Á¾·áÇÕ´Ï´Ù. ä³ÎÀÇ Á¾·ù¿¡ µû¶ó¼­´Â ±× »óÅ¿¡ ÀÀÇØ, ÀϺÎÀÇ ¹ÙÀÌÆ® ¹Û¿¡ Ãâ·ÂÇØÁöÁö ¾ÊÀº °æ¿ì³ª, ÀüÇô write¸¦ ÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ºñºí·Ï ¸ðµåÀÇ ¼ÒÄÏ Ã¤³Î¿¡¼­´Â ¼ÒÄÏÀÇ Ãâ·Â ¹öÆÛ³»ÀÇ ¹ÙÀÌÆ®¼ö°¡ ÃÖ´ë Ãâ·Â ¹ÙÀÌÆ®¼ö°¡ µË´Ï´Ù.

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

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

write

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

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

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

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

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.