JavaTM 2
Platform
Std.  Ed.  v1. 4.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

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

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

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

SO_BINDADDR

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

ÀÌ ¿É¼ÇÀº constructor Áß(¾È)¿¡¼­ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

À¯È¿: SocketImpl, DatagramSocketImpl

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

SO_REUSEADDR

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

À¯È¿: DatagramSocketImpl

°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

SO_BROADCAST

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

µµÀÔµÈ ¹öÁ¯:
1.4
°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

IP_MULTICAST_IF

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

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

°ü·Ã Ç׸ñ:
MulticastSocket.setInterface(java.net.InetAddress) , MulitcastSocket#getInterface, Á¤¼ö ÇʵåÄ¡

IP_MULTICAST_IF2

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

µµÀÔµÈ ¹öÁ¯:
1.4
°ü·Ã Ç׸ñ:
MulticastSocket.setNetworkInterface(java.net.NetworkInterface) , MulticastSocket.getNetworkInterface() , Á¤¼ö ÇʵåÄ¡

IP_MULTICAST_LOOP

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

µµÀÔµÈ ¹öÁ¯:
1.4
°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

IP_TOS

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

µµÀÔµÈ ¹öÁ¯:
1.4
°ü·Ã Ç׸ñ:
Á¤¼ö ÇʵåÄ¡

SO_LINGER

public 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

public 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

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

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

SO_RCVBUF

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

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

SO_KEEPALIVE

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

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

SO_OOBINLINE

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

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

setOption

public 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

public 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
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.