|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.net.DatagramSocket
java.net.MulticastSocket
public class MulticastSocket
멀티 캐스트 데이터 그램 소켓 클래스는, IP 멀티 캐스트 패킷을 송수신 하는 경우에 도움이 됩니다. MulticastSocket 는, 인터넷상외의 멀티 캐스트 호스트의 「그룹」에 참가하는 기능이 추가된 (UDP) DatagramSocket 입니다.
멀티 캐스트 그룹은, 클래스 D IP 주소와 표준의 UDP 포트 번호에 의해 지정됩니다. 클래스 D IP 주소의 범위는,239.255. 255.255
에서 224.0. 0.0
까지입니다. 주소 224.0. 0.0 은 예약되고 있어 사용할 수 없습니다.
멀티 캐스트 그룹에 참가하려면 , 최초로 목적의 포트로 MulticastSocket 를 작성해, 계속되어 joinGroup(InetAddress groupAddr)
메소드를 호출합니다.
// join a Multicast group and send the group salutations ... String msg = "Hello"; InetAddress group = InetAddress.getByName("228.5. 6.7"); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); s.send(hi); // get their responses! byte[] buf = new byte[1000]; DatagramPacket recv = new DatagramPacket(buf, buf.length); s.receive(recv); ... // OK, I'm done talking - leave the group... s.leaveGroup(group);멀티 캐스트 그룹에 메세지를 송신하면(자), 그 호스트와 포트의 모든 참가자가 메세지를 받아들입니다 (다만 패킷의 유효기간내에 한정된다. 자세한 것은 후술). 멀티 캐스트 그룹에 메세지를 송신하기 위해서는, 소켓이 그 멀티 캐스트 그룹의 멤버일 필요는 없습니다.
소켓이 멀티 캐스트 그룹 또는 포트에 참가하면(자), 다른 호스트로부터 그 그룹 또는 포트에 송신된 데이터 그램을 수신할 수가 있습니다. 그 그룹과 포트의 다른 멤버도 모두 같은 데이터 그램을 수신합니다. 소켓을 그룹으로부터 제외하려면 , leaveGroup(InetAddress addr) 메소드를 사용합니다. 복수의 MulticastSocket 가 병행해 멀티 캐스트 그룹과 포트에 참가할 수가 있어 그러한 MulticastSocket 는 모두 같은 그룹 데이터 그램을 수신합니다.
현재로서는, 애플릿에서는 멀티 캐스트 소켓을 사용할 수 없습니다.
생성자 의 개요 | |
---|---|
MulticastSocket ()
멀티 캐스트 소켓을 작성합니다. |
|
MulticastSocket (int port)
특정의 포트에 바인드 된 멀티 캐스트 소켓을 작성합니다. |
|
MulticastSocket (SocketAddress bindaddr)
지정된 소켓 주소에 바인드 된 MulticastSocket 를 작성합니다. |
메소드의 개요 | |
---|---|
InetAddress |
getInterface ()
멀티 캐스트 패킷에 사용하는 네트워크 인터페이스의 주소를 가져옵니다. |
boolean |
getLoopbackMode ()
멀티 캐스트 데이터 그램의 로컬 루프백의 설정치를 가져옵니다. |
NetworkInterface |
getNetworkInterface ()
멀티 캐스트 네트워크 인터페이스 세트를 가져옵니다. |
int |
getTimeToLive ()
이 소켓으로부터 송신되는 멀티 캐스트 패킷의 디폴트의 유효기간을 가져옵니다. |
byte |
getTTL ()
추천 되고 있지 않습니다. 대신에 getTimeToLive 메소드를 사용해 주세요. 이 메소드는,byte 는 아니고 int 를 돌려줍니다. |
void |
joinGroup (InetAddress mcastaddr)
있는 멀티 캐스트 그룹에 참가합니다. |
void |
joinGroup (SocketAddress mcastaddr,
NetworkInterface netIf)
지정된 인터페이스로 지정된 멀티 캐스트 그룹에 참가합니다. |
void |
leaveGroup (InetAddress mcastaddr)
있는 멀티 캐스트 그룹으로부터 멀어집니다. |
void |
leaveGroup (SocketAddress mcastaddr,
NetworkInterface netIf)
지정된 로컬 인터페이스상의 멀티 캐스트 그룹으로부터 멀어집니다. |
void |
send (DatagramPacket p,
byte ttl)
추천 되고 있지 않습니다. 대신에, 다음의 코드 또는 그것과 동등의 코드를 사용해 주세요. ...... + context.getLifetime()); + context.getLifetime()); + context.getLifetime()); + context.getLifetime()); ...... |
void |
setInterface (InetAddress inf)
네트워크 인터페이스의 값에 의해 그 동작이 영향을 받는 메소드가 사용하는, 멀티 캐스트 네트워크 인터페이스를 설정합니다. |
void |
setLoopbackMode (boolean disable)
멀티 캐스트 데이터 그램의 로컬 루프백을 유효 또는 무효로 합니다. |
void |
setNetworkInterface (NetworkInterface netIf)
이 소켓으로부터 송신되는 송출 멀티 캐스트 데이터 그램용의 네트워크 인터페이스를 지정합니다. |
void |
setTimeToLive (int ttl)
멀티 캐스트의 스코프를 제어하기 위해서, 이 MulticastSocket 로부터 송신되는 멀티 캐스트 패킷의 디폴트의 유효기간을 설정합니다. |
void |
setTTL (byte ttl)
추천 되고 있지 않습니다. 대신에 setTimeToLive 메소드를 사용해 주세요. 이 메소드는 ttl 의 형태로서byte 는 아니고 int 를 사용합니다. |
클래스 java.net. DatagramSocket 로부터 상속된 메소드 |
---|
bind , close , connect , connect , disconnect , getBroadcast , getChannel , getInetAddress , getLocalAddress , getLocalPort , getLocalSocketAddress , getPort , getReceiveBufferSize , getRemoteSocketAddress , getReuseAddress , getSendBufferSize , getSoTimeout , getTrafficClass , isBound , isClosed , isConnected , receive , send , setBroadcast , setDatagramSocketImplFactory , setReceiveBufferSize , setReuseAddress , setSendBufferSize , setSoTimeout , setTrafficClass |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
생성자 의 상세 |
---|
public MulticastSocket() throws IOException
시큐리티 매니저가 존재하는 경우, 최초로 그 checkListen
메소드가 0 을 인수로 지정해 불려 가 이 조작이 허가될지 어떨지가 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.
소켓이 작성되면(자),DatagramSocket.setReuseAddress(boolean)
메소드가 불려 가 SO_REUSEADDR 소켓 옵션이 유효하게 됩니다.
IOException
- MulticastSocket 의 작성중에 입출력 예외가 발생했을 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
,
DatagramSocket.setReuseAddress(boolean)
public MulticastSocket(int port) throws IOException
시큐리티 매니저가 존재하는 경우, 그 checkListen
메소드가 port
인수를 그 인수로서 지정해 불려 가 이 조작이 허가될지 어떨지가 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.
소켓이 작성되면(자),DatagramSocket.setReuseAddress(boolean)
메소드가 불려 가 SO_REUSEADDR 소켓 옵션이 유효하게 됩니다.
port
- 사용하는 포트
IOException
- MulticastSocket 의 작성중에 입출력 예외가 발생했을 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
,
DatagramSocket.setReuseAddress(boolean)
public MulticastSocket(SocketAddress bindaddr) throws IOException
혹은, 주소가 null
의 경우는, 안 바운드의 소켓을 작성합니다.
시큐리티 매니저가 존재하는 경우, 최초로 그 checkListen
메소드가 SocketAddress 포트를 인수로 지정해 불려 가 이 조작이 허가될지 어떨지가 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.
소켓이 작성되면(자),DatagramSocket.setReuseAddress(boolean)
메소드가 불려 가 SO_REUSEADDR 소켓 옵션이 유효하게 됩니다.
bindaddr
- 바인드 하는 소켓 주소. 안 바운드의 소켓의 경우는 null
IOException
- MulticastSocket 의 작성중에 입출력 예외가 발생했을 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkListen
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkListen(int)
,
DatagramSocket.setReuseAddress(boolean)
메소드의 상세 |
---|
@Deprecated public void setTTL(byte ttl) throws IOException
MulticastSocket
로부터 송신되는 멀티 캐스트 패킷의 디폴트의 유효기간을 설정합니다.
ttl 는부호 없음 8 비트 데이터이므로,0 <= ttl <= 0xFF
의 범위가 아니면 안됩니다.
ttl
- 유효기간
IOException
- 디폴트의 유효기간치의 설정중에 입출력 예외가 발생했을 경우getTTL()
public void setTimeToLive(int ttl) throws IOException
MulticastSocket
로부터 송신되는 멀티 캐스트 패킷의 디폴트의 유효기간을 설정합니다.
ttl 의 범위는 0 <= ttl <= 255
가아니면 안됩니다. 그렇지 않은 경우는, IllegalArgumentException 가 throw 됩니다.
ttl
- 유효기간
IOException
- 디폴트의 유효기간치의 설정중에 입출력 예외가 발생했을 경우getTimeToLive()
@Deprecated public byte getTTL() throws IOException
IOException
- 디폴트의 유효기간치의 취득중에 입출력 예외가 발생했을 경우setTTL(byte)
public int getTimeToLive() throws IOException
IOException
- 디폴트의 유효기간치의 취득중에 입출력 예외가 발생했을 경우setTimeToLive(int)
public void joinGroup(InetAddress mcastaddr) throws IOException
setInterface
또는 setNetworkInterface
의 영향을 받을 가능성이 있습니다.
시큐리티 매니저가 존재하는 경우, 최초로 시큐리티 매니저의 checkMulticast
메소드가, 인수로서 mcastaddr
를 지정해 불려 갑니다.
mcastaddr
- 참가하는 멀티 캐스트 주소
IOException
- 참가시에 에러가 발생했을 경우, 또는 주소가 멀티 캐스트 주소가 아닌 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkMulticast
메소드가 참가를 허가하지 않는 경우SecurityManager.checkMulticast(InetAddress)
public void leaveGroup(InetAddress mcastaddr) throws IOException
setInterface
또는 setNetworkInterface
의 영향을 받을 가능성이 있습니다.
시큐리티 매니저가 존재하는 경우, 최초로 시큐리티 매니저의 checkMulticast
메소드가, 인수로서 mcastaddr
를 지정해 불려 갑니다.
mcastaddr
- 떨어지는 멀티 캐스트 주소
IOException
- 멀어질 때에 에러가 발생했을 경우, 또는 주소가 멀티 캐스트 주소가 아닌 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkMulticast
메소드가 이 조작을 허가하지 않는 경우SecurityManager.checkMulticast(InetAddress)
public void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
시큐리티 매니저가 존재하는 경우, 최초로 시큐리티 매니저의 checkMulticast
메소드가, 인수로서 mcastaddr
를 지정해 불려 갑니다.
mcastaddr
- 참가하는 멀티 캐스트 주소netIf
- 멀티 캐스트 데이터 그램 패킷을 수신하는 로컬 인터페이스를 지정한다. setInterface(InetAddress)
또는 setNetworkInterface(NetworkInterface)
로 설정된 인터페이스를 사용하는 경우는 null
IOException
- 참가시에 에러가 발생했을 경우, 또는 주소가 멀티 캐스트 주소가 아닌 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkMulticast
메소드가 참가를 허가하지 않는 경우
IllegalArgumentException
- mcastaddr 가 null 인지, 이 소켓에 의해 지원되어 있지 않은 SocketAddress 서브 클래스인 경우SecurityManager.checkMulticast(InetAddress)
public void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
시큐리티 매니저가 존재하는 경우, 최초로 시큐리티 매니저의 checkMulticast
메소드가, 인수로서 mcastaddr
를 지정해 불려 갑니다.
mcastaddr
- 떨어지는 멀티 캐스트 주소netIf
- 로컬 인터페이스를 지정한다. setInterface(InetAddress)
또는 setNetworkInterface(NetworkInterface)
로 설정된 인터페이스를 사용하는 경우는 null
IOException
- 멀어질 때에 에러가 발생했을 경우, 또는 주소가 멀티 캐스트 주소가 아닌 경우
SecurityException
- 시큐리티 매니저가 존재해, 그 checkMulticast
메소드가 이 조작을 허가하지 않는 경우
IllegalArgumentException
- mcastaddr 가 null 인지, 이 소켓에 의해 지원되어 있지 않은 SocketAddress 서브 클래스인 경우SecurityManager.checkMulticast(InetAddress)
public void setInterface(InetAddress inf) throws SocketException
inf
- InetAddress
SocketException
- 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우getInterface()
public InetAddress getInterface() throws SocketException
InetAddress
SocketException
- 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우setInterface(java.net.InetAddress)
public void setNetworkInterface(NetworkInterface netIf) throws SocketException
netIf
- 인터페이스
SocketException
- 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우getNetworkInterface()
public NetworkInterface getNetworkInterface() throws SocketException
NetworkInterface
SocketException
- 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우setNetworkInterface(NetworkInterface)
public void setLoopbackMode(boolean disable) throws SocketException
이 옵션은 힌트이므로, 어플리케이션으로 루프 백 모드의 설정을 조사할 필요가 있는 경우는,getLoopbackMode()
를 호출해 주세요.
disable
- LoopbackMode 를 무효로 하는 경우는 true
SocketException
- 치의 설정중에 에러가 발생했을 경우getLoopbackMode()
public boolean getLoopbackMode() throws SocketException
SocketException
- 치의 취득중에 에러가 발생했을 경우setLoopbackMode(boolean)
@Deprecated public void send(DatagramPacket p, byte ttl) throws IOException
setInterface
의 영향을 받을 가능성이 있습니다.
시큐리티 매니저가 존재하는 경우, 이 메소드는 우선, 몇개의 시큐리티 체크를 실행합니다. 우선,p.getAddress(). isMulticastAddress()
가 true 의 경우, 이 메소드는, 시큐리티 매니저의 checkMulticast
메소드를,p.getAddress()
와 ttl
를 그 인수로 지정해 호출합니다. 그 식의 평가가 false 의 경우, 이 메소드는 대신에, 시큐리티 매니저의 checkConnect
메소드를, 인수 p.getAddress(). getHostAddress()
와 p.getPort()
를 지정해 호출합니다. 각각의 시큐리티 매니저 메소드 호출의 결과, 조작이 허가되지 않는 경우는 SecurityException 가 throw 됩니다.
p
- 송신되는 패킷. 패킷에는, 행선지의 멀티 캐스트 IP 주소와 송신 대상의 데이터를 포함해야 하는 것이다. 어느 행선지 멀티 캐스트 주소에 패킷을 송신하려면 , 그 그룹의 멤버일 필요는 없는ttl
- 멀티 캐스트 패킷의 유효기간 (임의). 디폴트 ttl 치는 1
IOException
- 에러가 발생했을 경우, 구체적으로는 ttl 의 설정중에 에러가 발생했을 경우에 발행된다
SecurityException
- 시큐리티 매니저가 존재해, 그 checkMulticast
또는 checkConnect
메소드가 송신을 허가하지 않는 경우DatagramSocket.send(java.net.DatagramPacket)
,
DatagramSocket.receive(java.net.DatagramPacket)
,
SecurityManager.checkMulticast(java.net.InetAddress, byte)
,
SecurityManager.checkConnect(java.lang.String, int)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.