JavaTM Platform
Standard Ed. 6

java.net
클래스 ServerSocket

java.lang.Object 
  상위를 확장 java.net.ServerSocket
직계의 기존의 서브 클래스:
SSLServerSocket


public class ServerSocket
extends Object

이 클래스는 서버 소켓을 구현합니다. 서버 소켓은, 네트워크 경유로 요구가 보내져 오는 것을 기다립니다. 이것은, 그 요구에 근거해 몇개의 조작을 실행합니다. 그 후, 경우에 따라서는 요구 바탕으로 결과를 돌려줍니다.  

서버 소켓의 실제의 처리는,SocketImpl 클래스의 인스턴스에 의해 실행됩니다. 어플리케이션은, 소켓 구현을 작성하는 소켓 팩토리를 변경하는 것으로, 로컬 방화벽(fire wall)에 적절한 소켓을 작성하도록(듯이) 어플리케이션 자체를 구성할 수가 있습니다.

도입된 버젼:
JDK1. 0
관련 항목:
SocketImpl , setSocketFactory(java.net.SocketImplFactory) , ServerSocketChannel

생성자 의 개요
ServerSocket ()
          안 바운드의 서버 소켓을 작성합니다.
ServerSocket (int port)
          지정된 포트에 바인드 된 서버 소켓을 작성합니다.
ServerSocket (int port, int backlog)
          서버 소켓을 작성해, 지정된 로컬 포트 번호에 바인드 해, 지정된 백 로그를 설정합니다.
ServerSocket (int port, int backlog, InetAddress  bindAddr)
          지정된 포트, 대기 백 로그, 및 바인드처의 로컬 IP 주소를 사용해 서버를 작성합니다.
 
메소드의 개요
 Socket accept ()
          이 소켓에 대한 접속 요구를 대기해, 그것을 받습니다.
 void bind (SocketAddress  endpoint)
          ServerSocket 를 특정의 주소 (IP 주소 및 포트 번호)에 바인드 합니다.
 void bind (SocketAddress  endpoint, int backlog)
          ServerSocket 를 특정의 주소 (IP 주소 및 포트 번호)에 바인드 합니다.
 void close ()
          이 소켓을 닫습니다.
 ServerSocketChannel getChannel ()
          이 소켓에 관련하는 고유 ServerSocketChannel 객체를 돌려줍니다 (존재하는 경우).
 InetAddress getInetAddress ()
          이 서버 소켓의 로컬 주소를 돌려줍니다.
 int getLocalPort ()
          이 소켓이 접속을 대기중의 포트를 돌려줍니다.
 SocketAddress getLocalSocketAddress ()
          이 소켓이 바인드 되고 있는 단 점의 주소를 돌려줍니다.
 int getReceiveBufferSize ()
          이 ServerSocket 로 사용되는 SO_RCVBUF 옵션의 값을 가져옵니다.
 boolean getReuseAddress ()
          SO_REUSEADDR 가 유효한가 어떤가를 조사합니다.
 int getSoTimeout ()
          SO_TIMEOUT 의 설정을 가져옵니다.
protected  void implAccept (Socket  s)
          ServerSocket 의 서브 클래스는, 이 메소드를 사용해 accept()를 오버라이드(override) 하는 것으로, 독자적인 서브 클래스의 소켓이 돌려주어지도록(듯이) 합니다.
 boolean isBound ()
          ServerSocket 의 바인딩 상태를 돌려줍니다.
 boolean isClosed ()
          ServerSocket 가 닫은 상태를 돌려줍니다.
 void setPerformancePreferences (int connectionTime, int latency, int bandwidth)
          이 ServerSocket 의 퍼포먼스 설정을 실시합니다.
 void setReceiveBufferSize (int size)
          이 ServerSocket 로부터 받아들여진 소켓의 SO_RCVBUF 옵션의 디폴트 추천값를 설정합니다.
 void setReuseAddress (boolean on)
          SO_REUSEADDR 소켓 옵션을 유효 또는 무효로 합니다.
static void setSocketFactory (SocketImplFactory  fac)
          어플리케이션의 서버 소켓 구현 팩토리를 설정합니다.
 void setSoTimeout (int timeout)
          지정된 타임 아웃 (밀리 세컨드)을 사용해 SO_TIMEOUT 를 유효 또는 무효로 합니다.
 String toString ()
          이 소켓의 구현 주소와 구현 포트를 String 로서 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

ServerSocket

public ServerSocket()
             throws IOException 
안 바운드의 서버 소켓을 작성합니다.

예외:
IOException - 소켓을 열 때의 입출력 에러

ServerSocket

public ServerSocket(int port)
             throws IOException 
지정된 포트에 바인드 된 서버 소켓을 작성합니다. 포트 0 을 지정하면(자), 비어 있는 포트상에서 소켓이 작성됩니다.  

수신하는 접속 (접속 요구)의 큐의 최대 길이은,50 으로 설정됩니다. 큐가 메워지고 있을 때 접속 요구가 있으면(자), 접속은 거부됩니다.  

어플리케이션으로 서버 소켓 팩토리를 지정하고 있는 경우는, 그 팩토리의 createSocketImpl 메소드가 불려 가 실제의 소켓이 작성됩니다. 그렇지 않은 경우는 「프레인인」소켓이 작성됩니다.  

시큐리티 매니저가 존재하는 경우, 그 checkListen 메소드가 port 인수를 그 인수로서 지정해 불려 가 이 조작이 허가될지 어떨지가 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.

파라미터:
port - 포트 번호. 비어 있는 포트를 사용하는 경우는 0
예외:
IOException - 소켓을 열고 있을 때 입출력 에러가 발생했을 경우
SecurityException - 시큐리티 매니저가 존재해, 그 checkListen 메소드가 이 조작을 허가하지 않는 경우
관련 항목:
SocketImpl , SocketImplFactory.createSocketImpl() , setSocketFactory(java.net.SocketImplFactory) , SecurityManager.checkListen(int)

ServerSocket

public ServerSocket(int port,
                    int backlog)
             throws IOException 
서버 소켓을 작성해, 지정된 로컬 포트 번호에 바인드 해, 지정된 백 로그를 설정합니다. 포트 번호 0 을 지정하면(자), 비어 있는 포트상에서 소켓이 작성됩니다.  

수신하는 접속 (접속 요구)의 큐의 최대 길이은,backlog 파라미터로 설정됩니다. 큐가 메워지고 있을 때 접속 요구가 있으면(자), 접속은 거부됩니다.  

어플리케이션으로 서버 소켓 팩토리를 지정하고 있는 경우는, 그 팩토리의 createSocketImpl 메소드가 불려 가 실제의 소켓이 작성됩니다. 그렇지 않은 경우는 「프레인인」소켓이 작성됩니다.  

시큐리티 매니저가 존재하는 경우, 그 checkListen 메소드가 port 인수를 그 인수로서 지정해 불려 가 이 조작이 허가될지 어떨지가 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.

backlog 인수는, 0 보다 큰 정의 값이 아니면 안됩니다. 건네받은 값이 0 이하의 경우는, 디폴트의 값이 사용됩니다.  

파라미터:
port - 사용하는 포트. 비어 있는 포트를 사용하는 경우는 0
backlog - 큐의 최대 길이
예외:
IOException - 소켓을 열고 있을 때 입출력 에러가 발생했을 경우
SecurityException - 시큐리티 매니저가 존재해, 그 checkListen 메소드가 이 조작을 허가하지 않는 경우
관련 항목:
SocketImpl , SocketImplFactory.createSocketImpl() , setSocketFactory(java.net.SocketImplFactory) , SecurityManager.checkListen(int)

ServerSocket

public ServerSocket(int port,
                    int backlog,
                    InetAddress  bindAddr)
             throws IOException 
지정된 포트, 대기 백 로그, 및 바인드처의 로컬 IP 주소를 사용해 서버를 작성합니다. 복수 홈의 호스트의 경우는,bindAddr 인수를 사용하면, 특정의 주소에 대한 접속 요구만을 수신하는 ServerSocket 를 작성할 수 있습니다. bindAddr 가 null 의 경우, 이것은 디폴트로, 임의의 (모든) 로컬 주소상의 접속을 받아들입니다. 포트는 0 에서 65535 까지 나오지 않으면 안됩니다.

시큐리티 매니저가 존재하는 경우, 이 메소드에 의해 그 checkListen 메소드가 port 인수를 그 인수로서 지정해 불려 가 이 조작이 허가될지 어떨지가 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.

backlog 인수는, 0 보다 큰 정의 값이 아니면 안됩니다. 건네받은 값이 0 이하의 경우는, 디폴트의 값이 사용됩니다.  

파라미터:
port - 로컬 TCP 포트
backlog - 대기하는 백 로그
bindAddr - 서버를 바인드 하는 로컬 InetAddress
예외:
SecurityException - 시큐리티 매니저가 존재해, 그 checkListen 메소드가 이 조작을 허가하지 않는 경우
IOException - 소켓을 열고 있을 때 입출력 에러가 발생했을 경우
도입된 버젼:
JDK1. 1
관련 항목:
SocketOptions , SocketImpl , SecurityManager.checkListen(int)
메소드의 상세

bind

public void bind(SocketAddress  endpoint)
          throws IOException 
ServerSocket 를 특정의 주소 (IP 주소 및 포트 번호)에 바인드 합니다.  

주소가 null 의 경우는, 시스템에 의해 일시적인 포트와 유효한 로컬 주소가 선택되어 소켓이 바인드 됩니다.  

파라미터:
endpoint - 바인드처의 IP 주소 및 포트 번호
예외:
IOException - 바인드 조작에 실패했을 경우, 혹은 소켓이 벌써 바인드 되고 있는 경우
SecurityException - SecurityManager 가 존재해, 그 checkListen 메소드가 이 조작을 허가하지 않는 경우
IllegalArgumentException - 단 점이, 이 소켓에 의해 지원되어 있지 않은 SocketAddress 서브 클래스인 경우
도입된 버젼:
1.4

bind

public void bind(SocketAddress  endpoint,
                 int backlog)
          throws IOException 
ServerSocket 을 특정의 주소 (IP 주소 및 포트 번호)에 바인드 합니다.  

주소가 null 의 경우는, 시스템에 의해 일시적인 포트와 유효한 로컬 주소가 선택되어 소켓이 바인드 됩니다.  

backlog 인수는, 0 보다 큰 정의 값이 아니면 안됩니다. 건네받은 값이 0 이하의 경우는, 디폴트의 값이 사용됩니다.

파라미터:
endpoint - 바인드처의 IP 주소 및 포트 번호
backlog - 대기하는 백 로그의 길이
예외:
IOException - 바인드 조작에 실패했을 경우, 혹은 소켓이 벌써 바인드 되고 있는 경우
SecurityException - SecurityManager 가 존재해, 그 checkListen 메소드가 이 조작을 허가하지 않는 경우
IllegalArgumentException - 단 점이, 이 소켓에 의해 지원되어 있지 않은 SocketAddress 서브 클래스인 경우
도입된 버젼:
1.4

getInetAddress

public InetAddress  getInetAddress()
이 서버 소켓의 로컬 주소를 돌려줍니다.

반환값:
이 소켓의 바인드처 주소. 소켓이 바인드되어 있지 않은 경우는 null

getLocalPort

public int getLocalPort()
이 소켓이 접속을 대기중의 포트를 돌려줍니다.

반환값:
이 소켓이 대기하는 포트 번호. 소켓이 아직 바인드되어 있지 않은 경우는 -1

getLocalSocketAddress

public SocketAddress  getLocalSocketAddress()
이 소켓이 바인드 되고 있는 단 점의 주소를 돌려줍니다. 소켓이 바인드되어 있지 않은 경우는 null 를 돌려줍니다.

반환값:
이 소켓의 로컬단점을 나타내는 SocketAddress. 소켓이 아직 바인드되어 있지 않은 경우는 null
도입된 버젼:
1.4
관련 항목:
getInetAddress() , getLocalPort() , bind(SocketAddress)

accept

public Socket  accept()
              throws IOException 
이 소켓에 대한 접속 요구를 대기해, 그것을 받습니다. 이 메소드는 접속을 할 때까지 블록 됩니다.

새로운 소켓 s 가 작성되어 시큐리티 매니저가 존재하는 경우에는, 그 checkAccept 메소드가 인수로서 s.getInetAddress(). getHostAddress()s.getPort() 를 지정해 불려 가 이 조작의 실행이 허가되고 있는 것이 확인됩니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.

반환값:
새로운 소켓
예외:
IOException - 접속의 대기중에 입출력 에러가 발생했을 경우
SecurityException - 시큐리티 매니저가 존재해, 그 checkAccept 메소드가 이 조작을 허가하지 않는 경우
SocketTimeoutException - 이전에 setSoTimeout 를 사용해 타임 아웃이 설정되어 있어, 그 타임 아웃에 이르렀을 경우
IllegalBlockingModeException - 이 소켓에 관련하는 채널이 존재해, 그 채널이 비블로킹 모드이며, 수락 준비가 갖추어진 접속이 존재하지 않는 경우 y
관련 항목:
SecurityManager.checkAccept(java.lang.String, int)

implAccept

protected final void implAccept(Socket  s)
                         throws IOException 
ServerSocket 의 서브 클래스는, 이 메소드를 사용해 accept()를 오버라이드(override) 하는 것으로, 독자적인 서브 클래스의 소켓이 돌려주어지도록(듯이) 합니다. 따라서, FooServerSocket 는 일반적으로, 이 메소드에 「빈 상태(empty)」의 FooSocket 를 건네줍니다. implAccept 로부터 돌아오면(자), 그 FooSocket 가 클라이언트에 접속됩니다.

파라미터:
s - 소켓
예외:
IllegalBlockingModeException - 이 소켓에 관련하는 채널이 존재해, 그 채널이 비블로킹 모드인 경우
IOException - 접속의 대기중에 입출력 에러가 발생했을 경우
도입된 버젼:
JDK1. 1

close

public void close()
           throws IOException 
이 소켓을 닫습니다. accept() 로 현재 블록 되고 있는 thread는 모두,SocketException 를 throw 합니다.

이 소켓에 관련하는 채널이 존재하는 경우는, 그 채널도 닫혀집니다.

예외:
IOException - 소켓을 닫을 때 입출력 에러가 발생했을 경우

getChannel

public ServerSocketChannel  getChannel()
이 소켓에 관련하는 고유 ServerSocketChannel 객체를 돌려줍니다 (존재하는 경우).

채널 자체가 ServerSocketChannel.open 메소드를 사용해 작성되었을 경우에만, 서버 소켓에 채널이 존재합니다.

반환값:
이 소켓에 관련지을 수 있었던 서버 소켓 채널. 이 소켓이 채널용으로 작성된 것이 아닌 경우는 null
도입된 버젼:
1.4

isBound

public boolean isBound()
ServerSocket 의 바인딩 상태를 돌려줍니다.

반환값:
ServerSocket 가 정상적으로 주소에 바인드 되고 있는 경우는 true
도입된 버젼:
1.4

isClosed

public boolean isClosed()
ServerSocket 가 닫은 상태를 돌려줍니다.

반환값:
소켓이 닫았을 경우는 true
도입된 버젼:
1.4

setSoTimeout

public void setSoTimeout(int timeout)
                  throws SocketException 
지정된 타임 아웃 (밀리 세컨드)을 사용해 SO_TIMEOUT 를 유효 또는 무효로 합니다. 이 옵션을 0 이외의 타임 아웃으로 설정하면(자), 이 ServerSocket 의 accept() 호출이, 그 시간동안만 블록 됩니다. 타임 아웃의 기한이 지나면(자), ServerSocket 가 아직 유효해도 java.net.SocketTimeoutException 가 발행됩니다. 이 옵션은, 블록 조작에 들어가기 전에 유효하게 해 둘 필요가 있습니다. 타임 아웃에는 0 보다 큰 값을 지정합니다. 타임 아웃 0 은 무한의 타임 아웃으로서 해석됩니다.

파라미터:
timeout - 밀리 세컨드로 나타내지는, 지정된 타임 아웃
예외:
SocketException - 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우
도입된 버젼:
JDK1. 1
관련 항목:
getSoTimeout()

getSoTimeout

public int getSoTimeout()
                 throws IOException 
SO_TIMEOUT 의 설정을 가져옵니다. 이 옵션이 무효 (타임 아웃이 무한)의 경우는 0 을 돌려줍니다.

반환값:
SO_TIMEOUT 치
예외:
IOException - 입출력 에러가 발생했을 경우
도입된 버젼:
JDK1. 1
관련 항목:
setSoTimeout(int)

setReuseAddress

public void setReuseAddress(boolean on)
                     throws SocketException 
SO_REUSEADDR 소켓 옵션을 유효 또는 무효로 합니다.  

TCP 접속을 닫으면(자), 접속이 닫은 뒤, 접속이 일정한 시간 타임 아웃 상태대로 되는 일이 있습니다 (일반적으로,TIME_WAIT 상태 또는 2MSL 대기 상태로 불린다). 주지의 소켓 주소 또는 포트를 사용하는 어플리케이션의 경우, 소켓 주소 또는 포트에 관련하는 접속이 타임 아웃 상태에 있으면(자), 소켓을 필요한 SocketAddress 에 바인드 할 수 없는 것이 있습니다.  

bind(SocketAddress) 를 사용해 소켓을 바인드 하기 전에 SO_REUSEADDR 를 유효하게 하면(자), 이전의 접속이 타임 아웃 상태에서도 소켓을 바인드 할 수가 있습니다.  

ServerSocket 가 작성되면(자),SO_REUSEADDR 의 초기설정은 정의되고 있지 않습니다. 어플리케이션은,getReuseAddress() 를 사용해 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 - 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우
도입된 버젼:
1.4
관련 항목:
setReuseAddress(boolean)

toString

public String  toString()
이 소켓의 구현 주소와 구현 포트를 String 로서 돌려줍니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 소켓의 캐릭터 라인 표현

setSocketFactory

public static void setSocketFactory(SocketImplFactory  fac)
                             throws IOException 
어플리케이션의 서버 소켓 구현 팩토리를 설정합니다. 팩토리를 지정할 수 있는 것은 한 번 뿐입니다.  

어플리케이션으로 새로운 서버 소켓을 작성하면(자), 소켓 구현 팩토리의 createSocketImpl 메소드가 불려 가 실제의 소켓이 작성됩니다.  

이 메소드에 null 를 건네주어도, 팩토리가 벌써 설정되어 있지 않은 한, 그것은 무조작이 됩니다.  

시큐리티 매니저가 존재하는 경우, 이 메소드는 최초로 시큐리티 매니저의 checkSetFactory 메소드를 호출하는 것으로, 이 조작이 허가되고 있는 것을 확인합니다. 이 결과, SecurityException 가 throw 되는 일이 있습니다.

파라미터:
fac - 목적의 팩토리
예외:
IOException - 소켓 팩토리의 설정중에 입출력 에러가 발생했을 경우
SocketException - 팩토리가 벌써 정의되고 있는 경우
SecurityException - 시큐리티 매니저가 존재해, 그 checkSetFactory 메소드가 이 조작을 허가하지 않는 경우
관련 항목:
SocketImplFactory.createSocketImpl() , SecurityManager.checkSetFactory()

setReceiveBufferSize

public void setReceiveBufferSize(int size)
                          throws SocketException 
ServerSocket 로부터 받아들여진 소켓의 SO_RCVBUF 옵션의 디폴트 추천값를 설정합니다. 받아들여진 소켓내에 실제로 설정되어 있는 값을 확인해 주세요. 거기에는,accept() 로부터 소켓이 반환된 후에 Socket.getReceiveBufferSize() 를 호출합니다.  

SO_RCVBUF 의 값은, 내부 소켓 수신 버퍼의 사이즈의 설정과 원격 피어에 통지되는 TCP 수신 윈도우의 사이즈의 설정의 양쪽 모두에 사용됩니다.  

그 후,Socket.setReceiveBufferSize(int) 를 호출하는 것으로 값을 변경할 수 있습니다. 다만, 어플리케이션이 RFC1323 로 정의되고 있는 64K 바이트를 넘는 수신 윈도우를 사용 가능하게 할 필요가 있는 경우에는, 로컬 주소에 바인드 하기 전에 추천값를 ServerSocket 로 설정할 필요가 있습니다. 즉, 인수 없음 생성자 을 사용해 ServerSocket 를 작성해, 다음에 setReceiveBufferSize()를 호출해, 마지막에 bind()를 호출해 ServerSocket 를 주소에 바인드 할 필요가 있는 것을 의미합니다.  

이것에 실패해도 에러는 발생하지 않고, 버퍼 사이즈는 요구된 값으로 설정됩니다. 다만, 이 ServerSocket 로부터 받는 소켓의 TCP 수신 윈도우는 64K 바이트 이하가 됩니다.

파라미터:
size - 수신 버퍼 사이즈의 설정 사이즈. 이 값은 0 보다 크지 않으면 안됩니다.
예외:
SocketException - 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우
IllegalArgumentException - 치가 0 또는 0 보다 작은 값인 경우
도입된 버젼:
1.4
관련 항목:
getReceiveBufferSize()

getReceiveBufferSize

public int getReceiveBufferSize()
                         throws SocketException 
ServerSocket 로 사용되는 SO_RCVBUF 옵션의 값을 가져옵니다. 이것은, 이 ServerSocket 로부터 받는 소켓에 사용되는 추천 버퍼 사이즈입니다.

받아들인 소켓에 실제로 설정된 값은,Socket.getReceiveBufferSize() 를 호출해 판정하는 것에 주의해 주세요.

반환값:
Socket 의 SO_RCVBUF 옵션의 값
예외:
SocketException - 사용하고 있는 프로토콜로 에러 (TCP 에러등)가 발생했을 경우
도입된 버젼:
1.4
관련 항목:
setReceiveBufferSize(int)

setPerformancePreferences

public void setPerformancePreferences(int connectionTime,
                                      int latency,
                                      int bandwidth)
이 ServerSocket 의 퍼포먼스 설정을 실시합니다.

소켓은 디폴트로, TCP/IP 프로토콜을 사용합니다. 구현에 따라서는, TCP/IP 와는 다른 퍼포먼스 특성을 가지는 대체 프로토콜을 제공하는 일도 있습니다. 어플리케이션은, 이 메소드를 사용하는 것으로, 구현으로 이용 가능한 프로토콜의 선택시에, 이러한 균형의 취하는 방법을 나타내는 독자적인 설정을 표현할 수 있습니다.

퍼포먼스 설정은, 접속 시간의 짧음, 응답 시간의 속도, 및 대역폭의 넓이의 상대적인 중요도를 나타내는 3 개의 정수치에 의해 기술됩니다. 이러한 정수의 절대치는 중요하지는 않습니다. 어느 특정의 프로토콜을 선택하기 위해서, 이러한 값이 단순하게 비교됩니다만, 그 때, 값이 크면보다 강한 설정을 나타냅니다. 예를 들어, 어플리케이션이 응답 시간의 속도나 대역폭의 넓이보다 접속 시간의 짧음을 우선하는 경우에는, 값 (1, 0, 0) 을 지정해 이 메소드를 호출할 수가 있습니다. 어플리케이션이 응답 시간의 속도보다 대역폭의 넓이를 우선해, 접속 시간의 짧음보다 대기 시간의 짧음을 우선하는 경우에는, 값 (0, 1, 2) 을 지정해 이 메소드를 호출할 수가 있습니다.

이 소켓의 바인드 후에 이 메소드를 호출해도, 무슨 효과도 없습니다. 즉, 이 기능을 사용하려면 , 인수 없음 생성자 으로 소켓을 작성할 필요가 있습니다.

파라미터:
connectionTime - 접속 시간의 짧음의 상대적인 중요도를 나타내는 int
latency - 응답 시간의 속도의 상대적인 중요도를 나타내는 int
bandwidth - 대역폭의 넓이의 상대적인 중요도를 나타내는 int
도입된 버젼:
1.5

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.