|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 모든 클래스 | ||||||||||
개요: 상자 | 필드 | constructor | 메소드 | 상세: 필드 | constructor | 메소드 |
java.lang.Object | +--java.net.DatagramSocket
이 클래스는 데이터 그램 패킷을 송수신하기 위한 소켓을 나타냅니다.
데이터 그램 소켓은 패킷 전달 서비스의 송신점 또는 수신점입니다. 데이터 그램 소켓상에서 송신 또는 수신하는 각 패킷은 각각 다른 주소로 경로가 지정됩니다. 어느 머신으로부터 다른 머신에 복수의 패킷을 송신하는 경우, 각 패킷은 다른 경로에서 송신될 가능성이 있어, 행선지에는 임의의 순서로 도달할 가능성이 있습니다.
UDP 브로드캐스트 송신은 DatagramSocket 상에서 항상 유효하게 되어 있습니다. 브르드캐스트파켓트를 수신하려면 , DatagramSocket 가 와일드 카드 주소에 바인드 되고 있을 필요가 있습니다. 구현에 따라서는 DatagramSocket 가 특정의 주소에 바인드 되고 있는 경우에도 브로드캐스트 패킷을 수신하는 것도 있습니다.
례:
DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888));
이것은 다음과 같습니다.
DatagramSocket s = new DatagramSocket(8888);
어느 쪽의 경우도, UDP 포토 8888 의 브로드캐스트를 수신할 수 있는 DatagramSocket 가 작성됩니다.
DatagramPacket
,
DatagramChannel
생성자의 개요 | |
|
DatagramSocket ()
데이터 그램 소켓을 구축해, 로컬 호스트 머신상의 사용 가능한 포토에 바인드 합니다. |
protected |
DatagramSocket (DatagramSocketImpl impl)
지정된 DatagramSocketImpl 를 사용해 안 바운드의 데이터 그램 소켓을 작성합니다. |
|
DatagramSocket (int port)
데이터 그램 소켓을 구축해, 로컬 호스트 머신상의 지정된 포토에 바인드 합니다. |
|
DatagramSocket (int port,
InetAddress laddr)
지정된 로컬 주소에 바인드 된 데이터 그램 소켓을 작성합니다. |
|
DatagramSocket (SocketAddress bindaddr)
지정된 로컬 주소에 바인드 된 데이터 그램 소켓을 작성합니다. |
메소드의 개요 | |
void |
bind (SocketAddress addr)
이 DatagramSocket 를 특정의 주소 및 포토에 바인드 합니다. |
void |
close ()
이 데이터 그램 소켓을 닫습니다. |
void |
connect (InetAddress address,
int port)
이 소켓의 리모트 주소에, 소켓을 접속합니다. |
void |
connect (SocketAddress addr)
이 소켓을 리모트 소켓 주소 (IP 주소 + 포토 번호)에 접속합니다. |
void |
disconnect ()
소켓을 절단 합니다. |
boolean |
getBroadcast ()
SO_BROADCAST 가 유효한가 어떤가를 조사합니다. |
DatagramChannel |
getChannel ()
이 데이터 그램 소켓에 관련하는 고유의 DatagramChannel 오브젝트를 돌려줍니다 (존재하는 경우).
|
InetAddress |
getInetAddress ()
소켓이 접속되고 있는 주소를 돌려줍니다. |
InetAddress |
getLocalAddress ()
소켓의 바인드처의 로컬 주소를 취득합니다. |
int |
getLocalPort ()
이 소켓의 바인드처가 되는 로컬 호스트상의 포토 번호를 돌려줍니다. |
SocketAddress |
getLocalSocketAddress ()
이 소켓이 바인드 되고 있는 단 점의 주소를 돌려줍니다. |
int |
getPort ()
이 소켓을 위한 포토를 돌려줍니다. |
int |
getReceiveBufferSize ()
이 DatagramSocket 로 사용되는 SO_RCVBUF 옵션의 값을 취득합니다. |
SocketAddress |
getRemoteSocketAddress ()
이 소켓이 접속되고 있는 단 점의 주소를 돌려줍니다. |
boolean |
getReuseAddress ()
SO_REUSEADDR 가 유효한가 어떤가를 조사합니다. |
int |
getSendBufferSize ()
이 DatagramSocket 로 사용되는 SO_SNDBUF 옵션의 값을 취득합니다. |
int |
getSoTimeout ()
SO_TIMEOUT 의 설정을 취득합니다. |
int |
getTrafficClass ()
이 DatagramSocket 로부터 송신되는 패킷의 IP 데이터 그램 헤더의 트래픽 클래스 또는 서비스 타입을 취득합니다. |
boolean |
isBound ()
소켓의 바인딩 상태를 돌려줍니다. |
boolean |
isClosed ()
소켓이 닫았는지 어떠했는지를 돌려줍니다. |
boolean |
isConnected ()
소켓의 접속 상태를 돌려줍니다. |
void |
receive (DatagramPacket p)
이 소켓으로부터의 데이터 그램 패킷을 수신합니다. |
void |
send (DatagramPacket p)
이 소켓으로부터 데이터 그램 패킷을 송신합니다. |
void |
setBroadcast (boolean on)
SO_BROADCAST 를 유효 또는 무효로 합니다. |
static void |
setDatagramSocketImplFactory (DatagramSocketImplFactory fac)
어플리케이션의 데이터 그램 소켓 구현 팩토리를 설정합니다. |
void |
setReceiveBufferSize (int size)
SO_RCVBUF 옵션을, 이 DatagramSocket 로 지정된 값으로 설정합니다. |
void |
setReuseAddress (boolean on)
SO_REUSEADDR 소켓 옵션을 유효 또는 무효로 합니다. |
void |
setSendBufferSize (int size)
SO_SNDBUF 옵션을, 이 DatagramSocket 로 지정된 값으로 설정합니다. |
void |
setSoTimeout (int timeout)
지정된 대기 시간 (밀리 세컨드 단위)을 사용해, SO_TIMEOUT 를 유효 또는 무효로 합니다. |
void |
setTrafficClass (int tc)
이 DatagramSocket 로부터 송신되는 데이터 그램의 IP 데이터 그램 헤더의 트래픽 클래스 또는 서비스 타입 octet 를 설정합니다. |
클래스 java.lang. Object 에서 상속받은 메소드 |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자의 상세 |
public DatagramSocket() throws SocketException
시큐러티 매니저가 존재하는 경우, 최초로 시큐러티 매니저의 checkListen
가, 인수로서 0 을 지정해 불려 가 이 조작이 허가되고 있는 것을 확인합니다. 이 결과, SecurityException 가 되는 일이 있습니다.
SocketException
- 소켓을 열 수가 없었던 경우, 혹은 지정된 로컬 포토에 소켓을 바인드 할 수 없었던 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
protected DatagramSocket(DatagramSocketImpl impl)
impl
- 서브 클래스가 DatagramSocket 상에서 사용하는 DatagramSocketImpl 의 인스턴스public DatagramSocket(SocketAddress bindaddr) throws SocketException
주소가 null
의 경우는 안 바운드의 소켓을 작성합니다.
시큐러티 매니저가 존재하는 경우, 최초로 시큐러티 매니저의 checkListen
메소드가, 인수로서 소켓 주소의 포토를 지정해 불려 가 이 조작이 허가되고 있는 것을 확인합니다. 이 결과, SecurityException 가 되는 일이 있습니다.
bindaddr
- 바인드 하는 로컬 소켓 주소. 안 바운드의 소켓의 경우는 null
SocketException
- 소켓을 열 수가 없었던 경우, 혹은 지정된 로컬 포토에 소켓을 바인드 할 수 없었던 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
public DatagramSocket(int port) throws SocketException
시큐러티 매니저가 존재하는 경우, 최초로 시큐러티 매니저의 checkListen
메소드가, 인수로서 port
를 지정해 불려 가 이 조작이 허가되고 있는 것을 확인합니다. 이 결과, SecurityException 가 되는 일이 있습니다.
port
- 사용하는 포토
SocketException
- 소켓을 열 수가 없었던 경우, 혹은 지정된 로컬 포토에 소켓을 바인드 할 수 없었던 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
public DatagramSocket(int port, InetAddress laddr) throws SocketException
시큐러티 매니저가 존재하는 경우, 최초로 시큐러티 매니저의 checkListen
메소드가, 인수로서 port
를 지정해 불려 가 이 조작이 허가되고 있는 것을 확인합니다. 이 결과, SecurityException 가 되는 일이 있습니다.
port
- 사용하는 로컬 포토laddr
- 바인드처의 로컬 주소
SocketException
- 소켓을 열 수가 없었던 경우, 혹은 지정된 로컬 포토에 소켓을 바인드 할 수 없었던 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
메소드의 상세 |
public void bind(SocketAddress addr) throws SocketException
주소가 null
의 경우는 시스템에 의해 일시적인 포토와 유효한 로컬 주소가 선택되어 소켓이 바인드 됩니다.
addr
- 바인드처의 주소 및 포토
SocketException
- 바인드시에 에러가 발생했을 경우, 혹은 소켓이 벌써 바인드 되고 있는 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkListen
메소드가 이 조작을 허가하지 않는 경우
IllegalArgumentException
- addr 가 이 소켓으로 서포트되어 있지 않은 SocketAddress 서브 클래스인 경우public void connect(InetAddress address, int port)
소켓을 접속하는 리모트 접속처가 존재하지 않는가 도달 불가능의 경우, 및 그 주소에 대한 ICMP 전송처 도달 불능 패킷을 수신했을 경우는 이후의 송신 또는 수신 호출로 PortUnreachableException 가 슬로우 되는 일이 있습니다. 예외가 슬로우 된다고 하는 프로텍션이 있는 것은 아닙니다.
지정된 호스트 및 포토와의 데이터 그램의 송수신을 행하기 위한 호출측의 액세스권은 접속시에 확인됩니다. 소켓이 접속되었을 때, 송수신에서는 패킷의 수신 및 송신에 대한 시큐러티 체크를실시하지 않습니다. 다만, 패킷과 소켓의 주소 및 포토가 일치할지 어떨지의 확인은 실시합니다. 송신의 처리에서는 패킷의 주소가 설정되어 있는 경우에, 패킷의 주소와 소켓의 주소가 일치하지 않을 때는 IllegalArgumentException 가 슬로우 됩니다. 멀티 캐스트 주소에 접속되고 있는 소켓은 송신 패킷인 만큼 사용할 수 있습니다.
address
- 소켓이 사용하는 리모트 주소port
- 소켓이 사용하는 리모트 포토
IllegalArgumentException
- 주소가 null 인 경우, 혹은 포토가 범위외의 경우
SecurityException
- 지정된 주소 및 포토와의 데이터 그램의 송수신이, 호출 측에 허가되어 있지 않은 경우disconnect()
,
send(java.net.DatagramPacket)
,
receive(java.net.DatagramPacket)
public void connect(SocketAddress addr) throws SocketException
addr
- 리모트 주소
SocketException
- 접속에 실패했을 경우
IllegalArgumentException
- addr 가 null 인 경우, 또는 addr 가 이 소켓으로 서포트되어 있지 않은 SocketAddress 서브 클래스인 경우connect(java.net.InetAddress, int)
public void disconnect()
connect(java.net.InetAddress, int)
public boolean isBound()
public boolean isConnected()
public InetAddress getInetAddress()
public int getPort()
public SocketAddress getRemoteSocketAddress()
null 를 돌려줍니다.
- 반환값:
- 이 소켓의 리모트단점을 나타내는
SocketAddress
. 소켓이 아직 접속되어 있지 않은 경우는 null
- 도입된 버젼:
- 1.4
- 관련 항목:
getInetAddress()
,
getPort()
,
#connect(SocketAddress, int)
,
connect(SocketAddress)
getLocalSocketAddress
public SocketAddress getLocalSocketAddress()
- 이 소켓이 바인드 되고 있는 단 점의 주소를 돌려줍니다. 소켓이 바인드되어 있지 않은 경우는
null 를 돌려줍니다.
- 반환값:
- 이 소켓의 로컬단점을 나타내는
SocketAddress
. 소켓이 아직 바인드되어 있지 않은 경우는 null
- 도입된 버젼:
- 1.4
- 관련 항목:
getLocalAddress()
,
getLocalPort()
,
bind(SocketAddress)
send
public void send(DatagramPacket p)
throws IOException
- 이 소켓으로부터 데이터 그램 패킷을 송신합니다.
DatagramPacket
에는 송신하는 데이터, 데이터의 길이, 리모트 호스트의 IP 주소, 및 리모트 호스트상의 포토 번호등의 정보가 저장되고 있습니다.
시큐러티 매니저가 존재하는 경우, 소켓이 리모트 주소에 접속되어 있지 않을 때는 이 메소드는 우선 하등의 시큐러티 체크를 실행합니다. 처음은 p.getAddress(). isMulticastAddress()
가 true 의 경우, 이 메소드는 시큐러티 매니저의 checkMulticast
메소드를, 인수로서 p.getAddress()
를 지정해 호출합니다. 상기의 식의 결과가 false 의 경우, 이 메소드는 대신에 시큐러티 매니저의 checkConnect
메소드를, 인수로서 p.getAddress(). getHostAddress()
및 p.getPort()
를 지정해 호출합니다. 이러한 조작이 허가되어 있지 않은 경우, 시큐러티 매니저의 각 메소드 호출의 결과는 SecurityException 가 되는 일이 있습니다.
- 파라미터:
p
- 송신되는 DatagramPacket
- 예외:
IOException
- 입출력 에러가 발생했을 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkMulticast
메소드 또는 checkConnect
가 송신을 허가하지 않는 경우
PortUnreachableException
- 현재 도달 불가능한 접속 먼저 소켓이 접속되는 경우에 슬로우 되는 일이 있다. 예외의 슬로우가 프로텍션되는 것은 아니다
IllegalBlockingModeException
- 이 소켓에 관련하는 채널이 존재해, 그 채널이 비블로킹 모드의 경우- 관련 항목:
DatagramPacket
,
SecurityManager.checkMulticast(InetAddress)
,
SecurityManager.checkConnect(java.lang.String, int)
receive
public void receive(DatagramPacket p)
throws IOException
- 이 소켓으로부터의 데이터 그램 패킷을 수신합니다. 이 메소드가 복귀하면(자),
DatagramPacket
의 버퍼에는 수신한 데이터가 저장됩니다. 데이터 그램 패킷에는 송신자의 IP 주소와 송신자의 머신의 포토 번호도 저장되고 있습니다.
이 메소드는 데이터 그램이 수신될 때까지 블록 하고 있습니다. 데이터 그램 패킷 오브젝트의 length
필드는 수신되는 메세지의 길이의 정보를 포함하고 있습니다. 메세지가 패킷보다 긴 경우, 메세지는 패킷의 길이에 잘라 채울 수 있습니다.
시큐러티 매니저가 존재하는 경우, 시큐러티 매니저의 checkAccept
메소드가 패킷의 수신을 허가하지 않을 때는 패킷의 수신은 행해지지 않습니다.
- 파라미터:
p
- 수신한 데이터를 보존하는 DatagramPacket
- 예외:
IOException
- 입출력 에러가 발생했을 경우
SocketTimeoutException
- setSoTimeout 가 이전에 불려 가, 타임 아웃이 지났을 경우
PortUnreachableException
- 현재 도달 불가능한 접속 먼저 소켓이 접속되는 경우에 슬로우 되는 일이 있다. 예외의 슬로우가 프로텍션되는 것은 아니다
IllegalBlockingModeException
- 소켓에 관련한 채널이 존재해, 그 채널이 비블로킹 모드의 경우- 관련 항목:
DatagramPacket
,
DatagramSocket
getLocalAddress
public InetAddress getLocalAddress()
- 소켓의 바인드처의 로컬 주소를 취득합니다.
시큐러티 매니저가 존재하는 경우, 우선 시큐러티 매니저의 checkConnect
메소드가, 인수로서 호스트 주소 및 -1
을 지정해 불려 가 이 조작이 허가되고 있는지 어떤지를 확인합니다.
- 반환값:
- 소켓의 바인드처의 로컬 주소. 소켓이 바인드 되지 않는가, 혹은 시큐러티 매니저
checkConnect
메소드가 이 조작을 허가하지 않는 경우는 임의의 로컬 주소를 나타내는 InetAddress
- 도입된 버젼:
- 1.1
- 관련 항목:
SecurityManager.checkConnect(java.lang.String, int)
getLocalPort
public int getLocalPort()
- 이 소켓의 바인드처가 되는 로컬 호스트상의 포토 번호를 돌려줍니다.
- 반환값:
- 이 소켓의 바인드처가 되는 로컬 호스트상의 포토 번호
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException
- 지정된 대기 시간 (밀리 세컨드 단위)을 사용해, SO_TIMEOUT 를 유효 또는 무효로 합니다. 이 옵션에 제로 이외의 대기 시간을 설정했을 경우, 이 DatagramSocket 에 대해서 receive()를 호출하면(자), 설정한 시간만 블록 됩니다. 대기 시간이 경과하면(자), DatagramSocket 는 유효한 그대로로 java.net.SocketTimeoutException 가 발생합니다. 이 옵션은 블록 조작에 들어가기 전에 유효하게 해 둘필요가 있습니다. 대기 시간에는 0 보다 큰 값을 지정합니다. 대기 시간에 제로를 지정하면(자), 대기 시간은 무한이라고 해석됩니다.
- 파라미터:
timeout
- 밀리 세컨드로 나타내지는 지정된 대기 시간
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 도입된 버젼:
- JDK1. 1
- 관련 항목:
getSoTimeout()
getSoTimeout
public int getSoTimeout()
throws SocketException
- SO_TIMEOUT 의 설정을 취득합니다. 이 옵션이 무효 (대기 시간이 무한)의 경우는 0 을 돌려줍니다.
- 반환값:
- SO_TIMEOUT 의 설정
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 도입된 버젼:
- JDK1. 1
- 관련 항목:
setSoTimeout(int)
setSendBufferSize
public void setSendBufferSize(int size)
throws SocketException
- SO_SNDBUF 옵션을, 이 DatagramSocket 로 지정된 값으로 설정합니다. SO_SNDBUF 옵션은 사용하는 네트워크 입출력 버퍼의 사이즈를 설정하는 힌트로서 네트워크 구현이 사용합니다. 또, 네트워크 구현은 이 소켓으로 송신할 수 있는 패킷의 최대 사이즈를 판정하기 위해서도 SO_SNDBUF 설정을 사용합니다.
SO_SNDBUF 는 힌트이므로, 어플리케이션으로 버퍼의 사이즈를 조사할 필요가 있는 경우는 getSendBufferSize()
를 호출해 주세요.
버퍼 사이즈를 크게 하면(자), 송신 속도가 높은 경우에 네트워크 구현에 의해 복수의 송신 패킷을 큐에 넣는 것이 가능하게 됩니다.
주: #send()
를 사용해 SO_SNDBUF 의 설정보다 큰 DatagramPacket
를 송신하는 경우, 패킷이 송신될까 파기될까는 구현에 따라서 다릅니다.
- 파라미터:
size
- 송신 버퍼용으로서 설정하는 사이즈. 0 보다 큰 값을 지정할 필요가 있다
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우
IllegalArgumentException
- 치가 0 또는 부의 값인 경우- 관련 항목:
getSendBufferSize()
getSendBufferSize
public int getSendBufferSize()
throws SocketException
- 이 DatagramSocket 로 사용되는 SO_SNDBUF 옵션의 값을 취득합니다. 이것은 이 DatagramSocket 로 출력용으로서 플랫폼이 사용하는 버퍼의 사이즈입니다.
- 반환값:
- 이 DatagramSocket 의 SO_SNDBUF 옵션의 값
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 관련 항목:
setSendBufferSize(int)
setReceiveBufferSize
public void setReceiveBufferSize(int size)
throws SocketException
- SO_RCVBUF 옵션을, 이 DatagramSocket 로 지정된 값으로 설정합니다. SO_RCVBUF 옵션은 사용하는 네트워크 입출력 버퍼의 사이즈를 설정하는 힌트로서 네트워크 구현이 사용합니다. 또, 네트워크 구현은 이 소켓으로 수신할 수 있는 패킷의 최대 사이즈를 판정하기 위해서도 SO_RCVBUF 설정을 사용합니다.
SO_RCVBUF 는 힌트이므로, 어플리케이션으로 버퍼의 사이즈 설정을 조사할 필요가 있는 경우는 getReceiveBufferSize()
를 호출해 주세요.
SO_RCVBUF 의 값을 크게 하면(자),#receive()
를 사용한 수신보다 빠르게 패킷이 도달하는 경우에, 네트워크 구현에 의한 복수의 패킷의 버퍼링이 가능하게 되는 경우가 있습니다.
주: SO_RCVBUF 보다 큰 패킷을 수신할 수 있을지 어떨지는 구현에 따라서 다릅니다.
- 파라미터:
size
- 수신 버퍼용으로서 설정하는 사이즈. 0 보다 큰 값을 지정할 필요가 있다
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우
IllegalArgumentException
- 치가 0 또는 부의 값인 경우- 관련 항목:
getReceiveBufferSize()
getReceiveBufferSize
public int getReceiveBufferSize()
throws SocketException
- 이 DatagramSocket 로 사용되는 SO_RCVBUF 옵션의 값을 취득합니다. 이것은 이 DatagramSocket 로 입력용으로서 플랫폼이 사용하는 버퍼의 사이즈입니다.
- 반환값:
- 이 DatagramSocket 의 SO_RCVBUF 옵션의 값
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 관련 항목:
setReceiveBufferSize(int)
setReuseAddress
public void setReuseAddress(boolean on)
throws SocketException
- SO_REUSEADDR 소켓 옵션을 유효 또는 무효로 합니다.
UDP 소켓의 경우, 복수의 소켓을 같은 소켓 주소에 바인드 하는 것이 필요하게 되는 일이 있습니다. 멀티 캐스트 패킷을 수신하기 위해서는 통상 이와 같이 합니다 (#java.net.MulticastSocket
를 참조). bind(SocketAddress)
를 사용해 소켓을 바인드 하기 전에 SO_REUSEADDR 소켓 옵션이 유효하게 되어 있으면,SO_REUSEADDR 소켓 옵션을 사용해 복수의 소켓을 동일한 소켓 주소에 바인드 할 수가 있습니다.
DatagramSocket 가 작성되면(자),SO_REUSEADDR 의 초기설정은 무효가 됩니다.
소켓이 바인드 되었다 (isBound()
를 참조) 나중에 SO_REUSEADDR 를 유효 또는 무효로 하는 경우의 동작은 정의되고 있지 않습니다.
- 파라미터:
on
- 유효하게 할까 무효로 하는지를 지정
- 예외:
SocketException
- SO_RESUEADDR 소켓 옵션을 유효 또는 무효로 할 경우에 에러가 발생하는 경우, 혹은 소켓이 닫고 있는 경우- 도입된 버젼:
- 1.4
- 관련 항목:
getReuseAddress()
,
bind(SocketAddress)
,
isBound()
,
isClosed()
getReuseAddress
public boolean getReuseAddress()
throws SocketException
- SO_REUSEADDR 가 유효한가 어떤가를 조사합니다.
- 반환값:
- SO_REUSEADDR 가 유효한가 어떤가를 나타내는
boolean
치
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 도입된 버젼:
- 1.4
- 관련 항목:
setReuseAddress(boolean)
setBroadcast
public void setBroadcast(boolean on)
throws SocketException
- SO_BROADCAST 를 유효 또는 무효로 합니다.
- 파라미터:
on
- 브로드캐스트를 온으로 할지 어떨지를 지정
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 도입된 버젼:
- 1.4
- 관련 항목:
getBroadcast()
getBroadcast
public boolean getBroadcast()
throws SocketException
- SO_BROADCAST 가 유효한가 어떤가를 조사합니다.
- 반환값:
- SO_BROADCAST 가 유효한가 어떤가를 나타내는
boolean
치
- 예외:
SocketException
- 기본이 되는 프로토콜로 UDP 에러등의 에러가 발생했을 경우- 도입된 버젼:
- 1.4
- 관련 항목:
setBroadcast(boolean)
setTrafficClass
public void setTrafficClass(int tc)
throws SocketException
- 이 DatagramSocket 로부터 송신되는 데이터 그램의 IP 데이터 그램 헤더의 트래픽 클래스 또는 서비스 타입 octet 를 설정합니다. 사용하는 네트워크 구현이 이 값을 무시하는 일이 있으므로, 어플리케이션에서는 이 값을 힌트라고 생각해 주세요.
tc 의 범위는 0 <= tc <= 255
가아니면 안됩니다. 그렇지 않은 경우는 IllegalArgumentException 가 슬로우 됩니다.
주:
IP (Internet Protocol) 버젼 4 의 경우, RFC 1349 로 설명되고 있게, 이 값은 우선도의 높은 octet 와 TOS 필드로 구성됩니다. TOS 필드는 다음과 같이 비트 단위의 논리합에 의해 작성되는 비트 세트입니다.
IPTOS_LOWCOST (0x02)
IPTOS_RELIABILITY (0x04)
IPTOS_THROUGHPUT (0x08)
IPTOS_LOWDELAY (0x10)
최하정도 비트는 MBZ (0 이 아니면 안된다) 비트에 대응하므로, 항상 무시됩니다.
우선 필드에 비트를 설정하면(자), 조작이 허가되지 않는 것을 나타내는 SocketException 가 되는 일이 있습니다.
IP (Internet Protocol) 버젼 6 의 경우,tc
는 IP 헤더의 sin6_flowinfo 필드에 저장되는 값입니다.
- 파라미터:
tc
- 비트 세트의 int
치
- 예외:
SocketException
- 트래픽 클래스 또는 서비스 타입을 설정할 경우에 에러가 발생했을 경우- 도입된 버젼:
- 1.4
- 관련 항목:
getTrafficClass()
getTrafficClass
public int getTrafficClass()
throws SocketException
- 이 DatagramSocket 로부터 송신되는 패킷의 IP 데이터 그램 헤더의 트래픽 클래스 또는 서비스 타입을 취득합니다.
사용하는 네트워크 구현이,#setTrafficClass()
를 사용해 설정된 트래픽 클래스 또는 서비스 타입을 무시하는 일이 있으므로, 이 DatagramSocket 로 #setTrafficClass()
메소드를 사용해 이전으로 설정된 값과는 다른 값이 이 메소드로부터 돌려주어지는 일이 있습니다.
- 반환값:
- 벌써 설정되어 있는 트래픽 클래스 또는 서비스 타입
- 예외:
SocketException
- 트래픽 클래스 또는 서비스 타입치를 취득할 경우에 에러가 발생했을 경우- 도입된 버젼:
- 1.4
- 관련 항목:
setTrafficClass(int)
close
public void close()
- 이 데이터 그램 소켓을 닫습니다.
현재 이 소켓의 {#link receive} 로 블록 떠날 수 있어 모든 thread가 SocketException
를 슬로우 합니다.
이 소켓에 관련하는 채널이 존재하는 경우는 그 채널도 닫혀집니다.
isClosed
public boolean isClosed()
- 소켓이 닫았는지 어떠했는지를 돌려줍니다.
- 반환값:
- 소켓이 닫았을 경우는 true
- 도입된 버젼:
- 1.4
getChannel
public DatagramChannel getChannel()
- 이 데이터 그램 소켓에 관련하는 고유의
DatagramChannel
오브젝트를 돌려줍니다 (존재하는 경우).
채널 자체가 DatagramChannel.open
메소드를 사용해 작성되었을 경우에만, 데이터 그램 소켓에 채널이 존재합니다.
- 반환값:
- 이 데이터 그램 소켓에 관련하는 데이터 그램 채널. 이 소켓이 채널용으로 작성되지 않았던 경우는 null
- 도입된 버젼:
- 1.4
setDatagramSocketImplFactory
public static void setDatagramSocketImplFactory(DatagramSocketImplFactory fac)
throws IOException
- 어플리케이션의 데이터 그램 소켓 구현 팩토리를 설정합니다. 팩토리를 설정할 수 있는 것은 1 회 뿐입니다.
어플리케이션으로 새로운 데이터 그램 소켓을 작성하면(자), 소켓 구현 팩토리의 createDatagramSocketImpl
메소드가 불려 가 실제의 데이터 그램 소켓 구현이 작성됩니다.
시큐러티 매니저가 존재하는 경우, 이 메소드는 최초로 시큐러티 매니저의 checkSetFactory
메소드를 호출하는 것으로, 이 조작이 허가되고 있는 것을 확인합니다. 이 결과, SecurityException 가 되는 일이 있습니다.
- 파라미터:
fac
- 목적의 팩토리
- 예외:
IOException
- 데이터 그램 소켓 팩토리의 설정중에 입출력 에러가 발생했을 경우
SocketException
- 팩토리가 벌써 정의되고 있는 경우
SecurityException
- 시큐러티 매니저가 존재해, 시큐러티 매니저의 checkSetFactory
메소드가 이 조작을 허가하지 않는 경우- 관련 항목:
DatagramSocketImplFactory.createDatagramSocketImpl()
,
SecurityManager.checkSetFactory()
개요
패키지
클래스
사용
계층 트리
비추천 API
색인
헬프
JavaTM 2
Platform
Std. Ed. v1. 4.0
전의 클래스
다음의 클래스
프레임 있어
프레임 없음
모든 클래스
개요: 상자 | 필드 | constructor | 메소드
상세: 필드 | constructor | 메소드
버그의 보고와 기능의 리퀘스트
이외의 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.