|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
public interface SocketOptions
소켓 옵션을 취득/설정하는 메소드의 인터페이스. 이 인터페이스는 SocketImpl 와 DatagramSocketImpl 에 의해 구현되고 있습니다. 이러한 서브 클래스에서 독자적인 옵션을 지원하려면 , 이 인터페이스의 메소드를 오버라이드(override) 해 주세요.
이 인터페이스내의, 옵션을 지정하기 위한 메소드와 정수는, 구현 전용입니다. SocketImpl 또는 DatagramSocketImpl 의 서브 클래스를 작성하지 않는 경우에는, 이것들을 직접 사용하지 말아 주세요. Socket, ServerSocket, DatagramSocket, 및 MulticastSocket 에는, 이러한 각 옵션을 취득/설정하기 위한 형 보증된 메소드가 존재하고 있습니다.
필드의 개요 | |
---|---|
static int |
IP_MULTICAST_IF
멀티 캐스트 패킷을 송신하는 송출 인터페이스를 어느 것으로 하는지 설정합니다. |
static int |
IP_MULTICAST_IF2
상기와 같습니다. |
static int |
IP_MULTICAST_LOOP
이 옵션은, 멀티 캐스트 데이터 그램의 로컬 루프백을 유효 또는 무효로 합니다. |
static int |
IP_TOS
이 옵션은, TCP 또는 UDP 소켓의 IP 헤더의 서비스의 형태 또는 트래픽 클래스 필드를 설정합니다. |
static int |
SO_BINDADDR
소켓의 로컬 주소에의 바인드를 가져옵니다. |
static int |
SO_BROADCAST
소켓의 SO_BROADCAST 를 설정합니다. |
static int |
SO_KEEPALIVE
TCP 소켓으로 킵얼라이브 옵션이 설정되어 있어, 2 시간 (주: 실제의 값은 구현에 의존한다)의 사이, 그 소켓 경유로 어느 쪽의 방향에도 데이터가 교환되지 않았던 경우, TCP 는 자동적으로, 킵얼라이브 프로브를 피어에 송신합니다. |
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
멀티 캐스트에 유효: 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 Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.