|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
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 ·Î ÁöÁ¤µÈ ¿É¼ÇÀ» À¯È¿ ¶Ç´Â ¹«È¿·Î ÇÕ´Ï´Ù. |
ÇʵåÀÇ »ó¼¼ |
---|
static final int TCP_NODELAY
TCP ÀÎ ¸¸Å À¯È¿: SocketImpl
Socket.setTcpNoDelay(boolean)
,
Socket.getTcpNoDelay()
,
Á¤¼ö Çʵ尪 static final int SO_BINDADDR
ÀÌ ¿É¼ÇÀº »ý¼ºÀÚ ¾È¿¡¼ÁöÁ¤µÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
À¯È¿: SocketImpl, DatagramSocketImpl
Socket.getLocalAddress()
,
DatagramSocket.getLocalAddress()
,
Á¤¼ö Çʵ尪 static final int SO_REUSEADDR
À¯È¿: DatagramSocketImpl
static final int SO_BROADCAST
static final int IP_MULTICAST_IF
¸ÖƼ ij½ºÆ®¿¡ À¯È¿: DatagramSocketImpl
MulticastSocket.setInterface(InetAddress)
,
MulticastSocket.getInterface()
,
Á¤¼ö Çʵ尪 static final int IP_MULTICAST_IF2
MulticastSocket.setNetworkInterface(NetworkInterface)
,
MulticastSocket.getNetworkInterface()
,
Á¤¼ö Çʵ尪 static final int IP_MULTICAST_LOOP
static final int IP_TOS
static final int SO_LINGER
TCP ¿¡¸¸ À¯È¿: SocketImpl
Socket.setSoLinger(boolean, int)
,
Socket.getSoLinger()
,
Á¤¼ö Çʵ尪 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)
,
Á¤¼ö Çʵ尪 static final int SO_SNDBUF
Socket.setSendBufferSize(int)
,
Socket.getSendBufferSize()
,
DatagramSocket.setSendBufferSize(int)
,
DatagramSocket.getSendBufferSize()
,
Á¤¼ö Çʵ尪 static final int SO_RCVBUF
Socket.setReceiveBufferSize(int)
,
Socket.getReceiveBufferSize()
,
DatagramSocket.setReceiveBufferSize(int)
,
DatagramSocket.getReceiveBufferSize()
,
Á¤¼ö Çʵ尪 static final int SO_KEEPALIVE
Socket.setKeepAlive(boolean)
,
Socket.getKeepAlive()
,
Á¤¼ö Çʵ尪 static final int SO_OOBINLINE
Socket.setOOBInline(boolean)
,
Socket.getOOBInline()
,
Á¤¼ö Çʵ尪 ¸Þ¼µåÀÇ »ó¼¼ |
---|
void setOption(int optID, Object value) throws SocketException
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
s.setOption(TCP_NODELAY, new Boolean(false)); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, new Boolean(false)); // OK - disables SO_LINGER
optID
- ¿É¼ÇÀÇ ID (½Äº°ÀÚ)value
- ¼ÒÄÏÀÇ ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍ
SocketException
- ¿É¼ÇÀÌ ÀνĵÇÁö ¾Ê´Â °æ¿ì, ¼ÒÄÏÀÌ ´ÝÇôÁö°í ÀÖ´Â °æ¿ì, ȤÀº ¾î¶°ÇÑ Àú·¹º§ ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìgetOption(int)
Object getOption(int optID) throws SocketException
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 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.