JavaTM 2 Platform
Standard Ed. 5.0

java.net
ÀÎÅÍÆäÀ̽º SocketOptions

¾Ë·ÁÁø ±¸Çö Ŭ·¡½º ¸ñ·Ï:
DatagramSocketImpl, SocketImpl

public interface SocketOptions

¼ÒÄÏÀÇ ¿É¼ÇÀ» Ãëµæ ¶Ç´Â ¼³Á¤ÇÏ´Â ¸Þ¼­µåÀÇ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â SocketImpl ¹× DatagramSocketImpl¿¡ ÀÇÇØ ±¸ÇöµË´Ï´Ù. ÀÌ·¯ÇÑ ¼­ºê Ŭ·¡½º¿¡¼­ µ¶ÀÚÀûÀÎ ¿É¼ÇÀ» Áö¿ø ÇÏ·Á¸é, ÀÌ ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼­µå¸¦ ¿À¹ö¶óÀ̵å(override)ÀÇÇØ ÁÖ¼¼¿ä.

ÀÌ ÀÎÅÍÆäÀ̽º·Î ¿É¼ÇÀ» ÁöÁ¤ÇÏ°í ÀÖ´Â ¸Þ¼­µå¿Í Á¤¼ö´Â ±¸ÇöÀ» À§Çظ¸ÀÇ °ÍÀÔ´Ï´Ù. SocketImpl ¶Ç´Â DatagramSocketImpl¸¦ »ó¼ÓÇÏÁö ¾Ê´Â °æ¿ì´Â À̰͵éÀ» Á÷Á¢ »ç¿ëÇÏÁö ¸»¾Æ ÁÖ¼¼¿ä. Socket, ServerSocket, DatagramSocket ¹× MulticastSocket ³»ÀÇ °¢°¢ÀÇ ¿É¼ÇÀ» Ãëµæ ¹× ¼³Á¤Çϱâ À§ÇÑ, ÇüÅ¿¡ ´ëÇؼ­ ¾ÈÀüÇÑ ¸Þ¼­µå°¡ ÀÖÀ¸¹Ç·Î ±×°ÍÀ» »ç¿ëÇÕ´Ï´Ù.


ÇÊµå °³¿ä
static int IP_MULTICAST_IF
          ¸ÖƼ ij½ºÆ® ÆÐŶÀ» ¼Û½ÅÇÏ´Â ¼ÛÃâ ÀÎÅÍÆäÀ̽º¸¦ ¾î´À °ÍÀ¸·Î ÇÏ´ÂÁö ¼³Á¤ÇÕ´Ï´Ù.
static int IP_MULTICAST_IF2
          »ó±â¿Í °°½À´Ï´Ù.
static int IP_MULTICAST_LOOP
          ÀÌ ¿É¼ÇÀº ¸ÖƼ ij½ºÆ® µ¥ÀÌÅÍ ±×·¥ÀÇ ·ÎÄà ·çÇÁ¹éÀ» À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù.
static int IP_TOS
          ÀÌ ¿É¼ÇÀº TCP ¶Ç´Â UDP ¼ÒÄÏÀÇ IP Çì´õÀÇ ¼­ºñ½ºÀÇ ÇüÅ ¶Ç´Â Æ®·¡ÇÈ Å¬·¡½º Çʵ带 ¼³Á¤ÇÕ´Ï´Ù.
static int SO_BINDADDR
          ¼ÒÄÏÀÇ ·ÎÄà ÁÖ¼Ò¿¡ÀÇ ¹ÙÀε带 ÃëµæÇÕ´Ï´Ù.
static int SO_BROADCAST
          ¼ÒÄÏÀÇ SO_BROADCAST¸¦ ¼³Á¤ÇÕ´Ï´Ù.
static int SO_KEEPALIVE
          TCP ¼ÒÄÏ¿¡ KeepAlive ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖ¾î, ¼ÒÄÏÀ» °³ÀÔ½ÃÄÑ ¾î´À ¹æÇâ¿¡µµ µ¥ÀÌÅÍ°¡ 2 ½Ã°£ (ÁÖ: ½ÇÁ¦ÀÇ °ªÀº ±¸Çö¿¡ ÇÑ´Ù)ÀÇ »çÀÌ ±³È¯µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, TCP´Â ÀÚµ¿ÀûÀ¸·Î KeepAlive ÇÁ·Îºê¸¦ ÇǾ ¼Û½ÅÇÕ´Ï´Ù.
static int SO_LINGER
          linger-on-close ŸÀÓ ¾Æ¿ôÀ» ÁöÁ¤ÇÕ´Ï´Ù.
static int SO_OOBINLINE
          OOBINLINE ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖÀ¸¸é, ¼ÒÄÏÀ¸·Î ¼ö½ÅµÇ´Â TCP ±ä±Þ µ¥ÀÌÅÍ´Â ¸ðµÎ ¼ÒÄÏ ÀÔ·Â ½ºÆ®¸²À» °æÀ¯ÇØ ¼ö½ÅµË´Ï´Ù.
static int SO_RCVBUF
          Âø½Å ³×Æ®¿öÅ© ÀÔÃâ·Â¿ëÀ¸·Î¼­ Ç÷§Æû¿¡¼­ »ç¿ëµÇ´Â ¹öÆÛÀÇ »çÀÌÁîÀÇ ÈùÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
static int SO_REUSEADDR
          ¼ÒÄÏÀÇ SO_REUSEADDR¸¦ ¼³Á¤ÇÕ´Ï´Ù.
static int SO_SNDBUF
          ¼Û½Å ³×Æ®¿öÅ© ÀÔÃâ·Â¿ëÀ¸·Î¼­ Ç÷§Æû¿¡¼­ »ç¿ëµÇ´Â ¹öÆÛÀÇ »çÀÌÁîÀÇ ÈùÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
static int SO_TIMEOUT
          ¼ÒÄÏ Á¶ÀÛÀÇ ºí·Ï¿¡ ŸÀÓ ¾Æ¿ôÀ» ¼³Á¤ÇÕ´Ï´Ù.
static int TCP_NODELAY
          ÀÌ Á¢¼Ó¿¡ »ç¿ëÇÏ´Â Nagle ¾Ë°í¸®ÁòÀ» ¹«È¿·Î ÇÕ´Ï´Ù.
 
¸Þ¼­µå °³¿ä
 Object getOption (int optID)
          ¿É¼ÇÀÇ °ªÀ» ÃëµæÇÕ´Ï´Ù.
 void setOption (int optID, Object  value)
          optID ·Î ÁöÁ¤µÈ ¿É¼ÇÀ» À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù.
 

ÇʵåÀÇ »ó¼¼

TCP_NODELAY

static final int TCP_NODELAY
ÀÌ Á¢¼Ó¿¡ »ç¿ëÇÏ´Â Nagle ¾Ë°í¸®ÁòÀ» ¹«È¿·Î ÇÕ´Ï´Ù. ÀÌÀü¿¡ Ãâ·ÂÇØÁø µ¥ÀÌÅÍ°¡ ½ÂÀ뵃 ¶§±îÁö, ³×Æ®¿öÅ©¿¡ Ãâ·ÂÇØÁö´Â µ¥ÀÌÅÍ´Â ¹öÆÛ¿¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.

TCP ÀÎ ¸¸Å­ À¯È¿: SocketImpl

°ü·Ã Ç׸ñ:
Socket.setTcpNoDelay(boolean), Socket.getTcpNoDelay(), Á¤¼ö Çʵ尪

SO_BINDADDR

static final int SO_BINDADDR
¼ÒÄÏÀÇ ·ÎÄà ÁÖ¼Ò¿¡ÀÇ ¹ÙÀε带 ÃëµæÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº ÃëµæµÇ´Â °Í¸¸À¸·Î ¼³Á¤Àº ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ°ÍÀº ¼ÒÄÏÀÌ ÀÛ¼º½Ã¿¡ ¹ÙÀÎµå µÇ¹Ç·Î ·ÎÄÿ¡ ¹ÙÀÎµå µÈ ÁÖ¼Ò¸¦ º¯°æÇÒ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù. ¼ÒÄÏÀÇ µðÆúÆ®ÀÇ ·ÎÄà ÁÖ¼Ò´Â INADDR_ANY ÀÔ´Ï´Ù. ÀÌ°ÍÀº multi-homedÀÇ È£½ºÆ®»ó¿¡ ÀÖ´Â ÀÓÀÇÀÇ ·ÎÄà ÁÖ¼Ò¸¦ÀǹÌÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇØ, multi-homedÀÇ È£½ºÆ®´Â º¹¼öÀÇ ÁÖ¼Ò °¡¿îµ¥ 1°³ ¸¸À¸·Î Á¢¼ÓÀ» ¹Þ¾ÆµéÀ̵µ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù (ServerSocket ¶Ç´Â DatagramSocketÀÎ °æ¿ì). ȤÀº È£½ºÆ®ÀÇ ¸®ÅÏ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù (Socket ¶Ç´Â DatagramSocket°¡ ´ë»ó). ÀÌ ¿É¼ÇÀÇ ÆĶó¹ÌÅÍ´Â InetAddress (ÀÎÅÍ³Ý ÁÖ¼Ò)ÀÔ´Ï´Ù.

ÀÌ ¿É¼ÇÀº »ý¼ºÀÚ ¾È¿¡¼­ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

À¯È¿: SocketImpl, DatagramSocketImpl

°ü·Ã Ç׸ñ:
Socket.getLocalAddress(), DatagramSocket.getLocalAddress(), Á¤¼ö Çʵ尪

SO_REUSEADDR

static final int SO_REUSEADDR
¼ÒÄÏÀÇ SO_REUSEADDR¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº java MulticastSockets ¿¡¸¸ »ç¿ëµÇ¾î¼­, MulticastSockets¿¡´Â µðÆúÆ®·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.

À¯È¿: DatagramSocketImpl

°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

SO_BROADCAST

static final int SO_BROADCAST
¼ÒÄÏÀÇ SO_BROADCAST¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº ºê·Îµåij½ºÆ® ¸Þ¼¼Áö¸¦ ¼Û½ÅÇÏ´Â ±â´ÉÀ» À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù. ÀÌ°ÍÀº µ¥ÀÌÅÍ ±×·¥ ¼ÒÄÏ¿ëÀ¸·Î ºê·Îµåij½ºÆ® ¸Þ¼¼ÁöÀÇ °³³äÀ» Áö¿øÇÏ´Â ³×Æ®¿öÅ© (¿¹¸¦ µé¾î Ethernet ³ª ÅäÅ«¸µ µî) »ó¿¡¼­¸¸ Áö¿ø µÇ¾î µðÆúÆ®¿¡¼­´Â DatagramSockets ¿ëÀ¸·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

IP_MULTICAST_IF

static final int IP_MULTICAST_IF
¸ÖƼ ij½ºÆ® ÆÐŶÀ» ¼Û½ÅÇÏ´Â ¼ÛÃâ ÀÎÅÍÆäÀ̽º¸¦ ¾î´À °ÍÀ¸·Î ÇÏ´ÂÁö ¼³Á¤ÇÕ´Ï´Ù. º¹¼öÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ °¡Áö´Â È£½ºÆ®·Î ¾îÇø®ÄÉÀ̼ÇÀÌ ½Ã½ºÅÛÀÇ µðÆúÆ® ÀÌ¿ÜÀÇ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾È µÇ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. InetAddress¸¦ ÃëµæÇϰųª µ¹·ÁÁְųª ÇÕ´Ï´Ù.

¸ÖƼ ij½ºÆ®¿¡ À¯È¿: DatagramSocketImpl

°ü·Ã Ç׸ñ:
MulticastSocket.setInterface(InetAddress), MulticastSocket.getInterface(), Á¤¼ö Çʵ尪

IP_MULTICAST_IF2

static final int IP_MULTICAST_IF2
»ó±â¿Í °°½À´Ï´Ù. ÀÌ ¿É¼ÇÀº IP_MULTICAST_IF¸¦ »ç¿ëÇÑ µ¿ÀÛÀ» ÀÌÀü°ú °°°Ô º¸°ü À¯ÁöÇϱâ À§Çؼ­ µµÀԵǾú½À´Ï´Ù. ¶Ç, ÀÌ »õ·Î¿î ¿É¼ÇÀº IPv4 ¶Ç´Â IPv6 ÁÖ¼Ò¸¦ »ç¿ëÇÑ ¼ÛÃâ ÀÎÅÍÆäÀ̽ºÀÇ ¼³Á¤À» Áö¿ø ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁÖ: ÀÌ°Í°ú ¸ð¼øµÇÁö ¾Ê°ÔÀÇÇØ ÁÖ¼¼¿ä.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
MulticastSocket.setNetworkInterface(NetworkInterface), MulticastSocket.getNetworkInterface(), Á¤¼ö Çʵ尪

IP_MULTICAST_LOOP

static final int IP_MULTICAST_LOOP
ÀÌ ¿É¼ÇÀº ¸ÖƼ ij½ºÆ® µ¥ÀÌÅÍ ±×·¥ÀÇ ·ÎÄà ·çÇÁ¹éÀ» À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â ÀÌ ¿É¼ÇÀº ¸ÖƼ ij½ºÆ® ¼ÒÄÏ¿ëÀ¸·Î À¯È¿ÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

IP_TOS

static final int IP_TOS
ÀÌ ¿É¼ÇÀº TCP ¶Ç´Â UDP ¼ÒÄÏÀÇ IP Çì´õÀÇ ¼­ºñ½ºÀÇ ÇüÅ ¶Ç´Â Æ®·¡ÇÈ Å¬·¡½º Çʵ带 ¼³Á¤ÇÕ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
Á¤¼ö Çʵ尪

SO_LINGER

static final int SO_LINGER
linger-on-close ŸÀÓ ¾Æ¿ôÀ» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº TCP ¼ÒÄÏÀÇ close()¸¦ Áï¼®¿¡¼­ µ¹·ÁÁִ ó¸®¸¦ À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù. ÀÌ ¿É¼Ç¿¡ Á¦·Î°¡ ¾Æ´Ñ Á¤¼öÀÇ Å¸ÀÓ ¾Æ¿ôÀ» ÁöÁ¤ÇØ À¯È¿ÇÏ°Ô Çϸé, close()´Â ºí·Ï µÇ¾î, ÇǾ Ãâ·ÂÇØÁö´Â Àüµ¥ÀÌÅÍÀÇ Àü¼Û ¹× ½ÂÀÎÀ» ¿¬±â½ÃÄÑ, ±× ½ÃÁ¡¿¡¼­ ¼ÒÄÏÀ» ´Ý½À´Ï´Ù. Áö¿¬ ŸÀÓ ¾Æ¿ô¿¡ µµ´ÞÇÑ ½ÃÁ¡¿¡¼­ ¼ÒÄÏÀº TCP RST ·Î °­Á¦ÀûÀ¸·Î ´ÝÇôÁý´Ï´Ù. ŸÀÓ ¾Æ¿ô Á¦·Î·Î ÀÌ ¿É¼ÇÀ» À¯È¿ÇÏ°Ô Çϸé, Áï¼®¿¡¼­ °­Á¦ÀûÀ¸·Î (¼ÒÄÏÀ») ´Ý½À´Ï´Ù. ÁöÁ¤µÈ ŸÀÓ ¾Æ¿ôÀÌ 65,535¸¦ ³Ñ°í ÀÖ´Â °æ¿ì´Â 65,535 ·Î ¼³Á¤µË´Ï´Ù.

TCP ¿¡¸¸ À¯È¿: SocketImpl

°ü·Ã Ç׸ñ:
Socket.setSoLinger(boolean, int), Socket.getSoLinger(), Á¤¼ö Çʵ尪

SO_TIMEOUT

static final int SO_TIMEOUT
¼ÒÄÏ Á¶ÀÛÀÇ ºí·Ï¿¡ ŸÀÓ ¾Æ¿ôÀ» ¼³Á¤ÇÕ´Ï´Ù.
 ServerSocket.accept(); SocketInputStream.read(); DatagramSocket.receive(); 

¿É¼ÇÀÇ ¼³Á¤Àº ºí·Ï Á¶ÀÛÀÌ À¯È¿ÇÏ°Ô µÇ±â Àü¿¡ ½Ç½ÃÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ŸÀÓ ¾Æ¿ôÀÌ Áö³ªµµ Á¶ÀÛÀÇ ºí·ÏÀÌ °è¼ÓµÇ°í ÀÖ´Â °æ¿ì´Â java.io.InterruptedIOException°¡ ¹ß»ý µË´Ï´Ù. ÀÌ °æ¿ì ¼ÒÄÏÀº ´ÝÇôÁöÁö ¾Ê½À´Ï´Ù.

¸ðµç ¼ÒÄÏÀ¸·Î À¯È¿: SocketImpl, DatagramSocketImpl

°ü·Ã Ç׸ñ:
Socket.setSoTimeout(int), ServerSocket.setSoTimeout(int), DatagramSocket.setSoTimeout(int), Á¤¼ö Çʵ尪

SO_SNDBUF

static final int SO_SNDBUF
¼Û½Å ³×Æ®¿öÅ© ÀÔÃâ·Â¿ëÀ¸·Î¼­ Ç÷§Æû¿¡¼­ »ç¿ëµÇ´Â ¹öÆÛÀÇ »çÀÌÁîÀÇ ÈùÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¼³Á¤À¸·Î »ç¿ëµÇ´Â °æ¿ì´Â ¼ÒÄÏÀ¸·Î ¼Û½ÅÇÏ´Â µ¥ÀÌÅÍ¿¡ »ç¿ëµÇ´Â ¹öÆÛÀÇ »çÀÌÁî¿¡ ´ëÇؼ­´Â ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ Ä¿³Ú¿¡ÀÇ Ãßõ°ªÀÌ µË´Ï´Ù. ÃëµæÀ¸·Î »ç¿ëµÇ´Â °æ¿ì´Â ÀÌ ¼ÒÄÏÀ¸·Î µ¥ÀÌÅ͸¦ ¼Û½ÅÇÒ °æ¿ì¿¡ Ç÷§ÆûÀÌ ½ÇÁ¦·Î »ç¿ëÇÏ´Â ¹öÆÛÀÇ »çÀÌÁî°¡ ¸®Åϵ˴ϴ٠. ¸ðµç ¼ÒÄÏÀ¸·Î À¯È¿: SocketImpl, DatagramSocketImpl

°ü·Ã Ç׸ñ:
Socket.setSendBufferSize(int), Socket.getSendBufferSize(), DatagramSocket.setSendBufferSize(int), DatagramSocket.getSendBufferSize(), Á¤¼ö Çʵ尪

SO_RCVBUF

static final int SO_RCVBUF
Âø½Å ³×Æ®¿öÅ© ÀÔÃâ·Â¿ëÀ¸·Î¼­ Ç÷§Æû¿¡¼­ »ç¿ëµÇ´Â ¹öÆÛÀÇ »çÀÌÁîÀÇ ÈùÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¼³Á¤À¸·Î »ç¿ëµÇ´Â °æ¿ì´Â ¼ÒÄÏÀ¸·Î µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ °æ¿ì¿¡ »ç¿ëµÇ´Â ¹öÆÛÀÇ »çÀÌÁî¿¡ ´ëÇؼ­´Â ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ Ä¿³Ú¿¡ÀÇ Ãßõ°ªÀÌ µË´Ï´Ù. ÃëµæÀ¸·Î »ç¿ëµÇ´Â °æ¿ì´Â ÀÌ ¼ÒÄÏÀ¸·Î µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ °æ¿ì¿¡ Ç÷§ÆûÀÌ ½ÇÁ¦·Î »ç¿ëÇÏ´Â ¹öÆÛÀÇ »çÀÌÁî°¡ ¸®Åϵ˴ϴ٠. ¸ðµç ¼ÒÄÏÀ¸·Î À¯È¿: SocketImpl, DatagramSocketImpl

°ü·Ã Ç׸ñ:
Socket.setReceiveBufferSize(int), Socket.getReceiveBufferSize(), DatagramSocket.setReceiveBufferSize(int), DatagramSocket.getReceiveBufferSize(), Á¤¼ö Çʵ尪

SO_KEEPALIVE

static final int SO_KEEPALIVE
TCP ¼ÒÄÏ¿¡ KeepAlive ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖ¾î, ¼ÒÄÏÀ» °³ÀÔ½ÃÄÑ ¾î´À ¹æÇâ¿¡µµ µ¥ÀÌÅÍ°¡ 2 ½Ã°£ (ÁÖ: ½ÇÁ¦ÀÇ °ªÀº ±¸Çö¿¡ ÇÑ´Ù)ÀÇ »çÀÌ ±³È¯µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, TCP´Â ÀÚµ¿ÀûÀ¸·Î KeepAlive ÇÁ·Îºê¸¦ ÇǾ ¼Û½ÅÇÕ´Ï´Ù. ÀÌ ÇÁ·Îºê´Â ÇǾ ÀÀ´äÇÒ ÇÊ¿ä°¡ ÀÖ´Â TCP ¼¼±×¸ÕÆ®(segment)ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ 3 °³Áß ¾î´ÀÀΰ¡°¡ »ý°¢µË´Ï´Ù. 1. ÇǾî´Â ¿¹»óµÇ´Â ACK ·Î ÀÀ´äÇÑ´Ù. ¸¸»ç ÁöÀå ¾ø±â ¶§¹®¿¡ ¾îÇø®ÄÉÀ̼ǿ¡´Â ÅëÁöÇÏÁö ¾Ê´Â´Ù. TCP´Â °Ô´Ù°¡ 2 ½Ã°£ µ¥ÀÌÅÍ ±³È¯À» ÇÏÁö ¾ÊÀ¸¸é ÇÁ·Îºê¸¦ ¼Û½ÅÇÑ´Ù. 2. ÇǾî´Â ÇǾî È£½ºÆ®°¡ Å©·¡½¬ÀÇÇØ Àç½ÃÀÛÇÑ ·ÎÄà TCP¸¦ ³ªÅ¸³»´Â RST ·Î ÀÀ´äÇÑ´Ù. ¼ÒÄÏÀº ´ÝÇôÁø´Ù. 3. ÇǾî·ÎºÎÅÍÀÇ ÀÀ´äÀÌ ¾ø´Ù. ¼ÒÄÏÀº ´ÝÇôÁø´ÙÀÌ ¿É¼ÇÀÇ ¸ñÀûÀº ÇǾî È£½ºÆ®°¡ Å©·¡½¬ ÇßÀ» °æ¿ì¿¡ °ËÃâÇÏ´Â °ÍÀÔ´Ï´Ù. TCP ¼ÒÄÏ¿¡¸¸ À¯È¿: SocketImpl

°ü·Ã Ç׸ñ:
Socket.setKeepAlive(boolean), Socket.getKeepAlive(), Á¤¼ö Çʵ尪

SO_OOBINLINE

static final int SO_OOBINLINE
OOBINLINE ¿É¼ÇÀÌ ¼³Á¤µÇ¾î ÀÖÀ¸¸é, ¼ÒÄÏÀ¸·Î ¼ö½ÅµÇ´Â TCP ±ä±Þ µ¥ÀÌÅÍ´Â ¸ðµÎ ¼ÒÄÏ ÀÔ·Â ½ºÆ®¸²À» °æÀ¯ÇØ ¼ö½ÅµË´Ï´Ù. ÀÌ ¿É¼ÇÀÌ ¹«È¿°¡ µÇ¾î ÀÖ´Â °æ¿ì (µðÆúÆ®), ±ä±Þ µ¥ÀÌÅÍ´Â ±×´ë·Î ÆıâµË´Ï´Ù.

°ü·Ã Ç׸ñ:
Socket.setOOBInline(boolean), Socket.getOOBInline(), Á¤¼ö Çʵ尪
¸Þ¼­µåÀÇ »ó¼¼

setOption

void setOption(int optID,
               Object  value)
               throws SocketException 
optID ·Î ÁöÁ¤µÈ ¿É¼ÇÀ» À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù. À¯È¿ÇÏ°Ô ÇÏ´Â ¿É¼ÇÀÌ ±× ¿É¼Ç ƯÀ¯ÀÇ ¡¸°ª¡¹À» ¹Þ´Â °æ¿ì´Â value ·Î¼­ °Ç³×¹Þ½À´Ï´Ù. °ªÀÇ ½ÇÁ¦ÀÇ ÇüÅ´ ¿É¼Ç¿¡ µû¶ó¼­ ´Ù¸¨´Ï´Ù. ¿É¼ÇÀ¸·Î »óÁ¤µÇ°í ÀÖ´Â ÇüÅ¿ʹ ´Ù¸¥ ÇüÅÂÀÇ °ªÀ» °Ç³×ÁÖ¾úÀ» °æ¿ì´Â ¿¡·¯°¡ µË´Ï´Ù.
 SocketImpl s; ... s.setOption(SO_LINGER, new Integer(10)); // OK - set SO_LINGER w/ timeout of 10 sec.  s.setOption(SO_LINGER, new Double(10)); // ERROR - expects java.lang.Integer
¿ä±¸µÇ´Â ¿É¼ÇÀÌ ¹ÙÀ̳ʸ®Ä¡ÀÇ °æ¿ì´Â java.lang.Boolean ¿¡ ÇÑ ´ÙÀ½ÀÇ ¸Þ¼­µå¸¦ »ç¿ëÇØ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
 s.setOption(TCP_NODELAY, new Boolean(true)); // OK - enables TCP_NODELAY, a binary option

Boolean(false)¿Í ÇÔ²² ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé, ÀÓÀÇÀÇ ¿É¼ÇÀ» ¹«È¿·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.
 s.setOption(TCP_NODELAY, new Boolean(false)); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, new Boolean(false)); // OK - disables SO_LINGER 

¿Â ¿ÀÇÁÀÇ ÅëÁö°¡ ÀÖ¾î, boolean ÇüÀÌ ¾Æ´Ñ ÆĶó¹ÌÅÍ°¡ ÇÊ¿äÇÑ ¿É¼Ç¿¡ ´ëÇؼ­´Â ÀÌ °ªÀ» Boolean(false) ÀÌ¿Ü¿¡ ¼³Á¤Çϸé, ¿É¼ÇÀÌ ¾Ï¹¬Áß¿¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.
¿É¼ÇÀÌ ÀνĵÇÁö ¾Ê´Â °æ¿ì, ¼ÒÄÏÀÌ ´ÝÇôÁö°í ÀÖ´Â °æ¿ì, ȤÀº ¾î¶°ÇÑ Àú·¹º§ÀÇ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì¿¡´Â SocketException°¡ ¹ß»ý µË´Ï´Ù.

ÆĶó¹ÌÅÍ:
optID - ¿É¼ÇÀÇ ID (½Äº°ÀÚ)
value - ¼ÒÄÏÀÇ ¿É¼ÇÀÇ ÆĶó¹ÌÅÍ
¿¹¿Ü:
SocketException - ¿É¼ÇÀÌ ÀνĵÇÁö ¾Ê´Â °æ¿ì, ¼ÒÄÏÀÌ ´ÝÇôÁö°í ÀÖ´Â °æ¿ì, ȤÀº ¾î¶°ÇÑ Àú·¹º§ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
°ü·Ã Ç׸ñ:
getOption(int)

getOption

Object  getOption(int optID)
                 throws SocketException 
¿É¼ÇÀÇ °ªÀ» ÃëµæÇÕ´Ï´Ù. ¹ÙÀ̳ʸ®Ä¡ÀÇ ¿É¼ÇÀº À¯È¿Çϸé java.lang.Boolean(true)¸¦ µ¹·ÁÁÖ°í, ¹«È¿À̸é java.lang.Boolean(false)¸¦ ¸®ÅÏÇÕ´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
 SocketImpl s; ... Boolean noDelay = (Boolean)(s.getOption(TCP_NODELAY)); if (noDelay.booleanValue()) { // true if TCP_NODELAY is enabled... ... }

ƯÁ¤ÀÇ ÇüŸ¦ ÆĶó¹ÌÅͷμ­ ÃëÇÏ´Â ¿É¼Ç¿¡ ´ëÇؼ­´Â getOption(int)´Â ÆĶó¹ÌÅÍÀÇ °ªÀ» ¸®ÅÏÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì´Â java.lang.Boolean(false)°¡ ¸®Åϵ˴ϴ٠.

 Object o = s.getOption(SO_LINGER); if (o instanceof Integer) { System.out.print("Linger time is " + ((Integer) o). intValue()); } else { // the true type of o is java.lang.Boolean(false); } 

ÆĶó¹ÌÅÍ:
optID - ¾ò´Â ¿É¼ÇÀ» ÁöÁ¤ÇÑ int°ª
¹Ýȯ°ª:
¿É¼ÇÀÇ °ª
¿¹¿Ü:
SocketException - ¼ÒÄÏÀÌ ´ÝÇôÁö°í ÀÖ´Â °æ¿ì
SocketException - optID °¡ ÇÁ·ÎÅäÄÝ ½ºÅà (SocketImpl¸¦ Æ÷ÇÔÇÑ´Ù)À¸·Î ¹ÌÁöÀÎ °æ¿ì
°ü·Ã Ç׸ñ:
setOption(int, java.lang.Object)

JavaTM 2 Platform
Standard Ed. 5.0

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