JavaTM Platform
Standard Ed. 6

java.net
클래스 SocketImpl

java.lang.Object 
  상위를 확장 java.net.SocketImpl
모든 구현된 인터페이스:
SocketOptions


public abstract class SocketImpl
extends Object
implements SocketOptions

abstract 클래스 SocketImpl 는, 실제로 소켓을 구현하는 모든 클래스에 공통의 슈퍼 클래스입니다. 이것은 클라이언트 소켓, 서버 소켓의 양쪽 모두의 작성에 사용됩니다.  

「프레인인」소켓은, 각 메소드를 기술대로 구현합니다. 방화벽(fire wall)나 프록시는 사용하지 않습니다.

도입된 버젼:
JDK1. 0

필드의 개요
protected  InetAddress address
          이 소켓의 원격측의 IP 주소입니다.
protected  FileDescriptor fd
          이 소켓의 파일 기술자 객체입니다.
protected  int localport
          이 소켓의 접속처의 로컬 포트 번호입니다.
protected  int port
          이 소켓의 접속처의 원격 호스트상에 있는 포트 번호입니다.
 
인터페이스 java.net. SocketOptions 로부터 상속된 필드
IP_MULTICAST_IF , IP_MULTICAST_IF2 , IP_MULTICAST_LOOP , IP_TOS , SO_BINDADDR , SO_BROADCAST , SO_KEEPALIVE , SO_LINGER , SO_OOBINLINE , SO_RCVBUF , SO_REUSEADDR , SO_SNDBUF , SO_TIMEOUT , TCP_NODELAY
 
생성자 의 개요
SocketImpl ()
           
 
메소드의 개요
protected abstract  void accept (SocketImpl  s)
          접속을 받아들입니다.
protected abstract  int available ()
          이 소켓으로부터 블록없이 읽어들일 수 있는 바이트수를 돌려줍니다.
protected abstract  void bind (InetAddress  host, int port)
          지정된 로컬의 IP 주소와 포트 번호에 이 소켓을 바인드 합니다.
protected abstract  void close ()
          이 소켓을 닫습니다.
protected abstract  void connect (InetAddress  address, int port)
          지정된 호스트상의 지정된 포트에 이 소켓을 접속합니다.
protected abstract  void connect (SocketAddress  address, int timeout)
          지정된 호스트상의 지정된 포트에 이 소켓을 접속합니다.
protected abstract  void connect (String  host, int port)
          지정된 호스트상의 지정된 포트에 이 소켓을 접속합니다.
protected abstract  void create (boolean stream)
          스트림 소켓 또는 데이터 그램 소켓을 작성합니다.
protected  FileDescriptor getFileDescriptor ()
          이 소켓의 fd 필드치를 돌려줍니다.
protected  InetAddress getInetAddress ()
          이 소켓의 address 필드치를 돌려줍니다.
protected abstract  InputStream getInputStream ()
          이 소켓의 입력 스트림을 돌려줍니다.
protected  int getLocalPort ()
          이 소켓의 localport 필드치를 돌려줍니다.
protected abstract  OutputStream getOutputStream ()
          이 소켓의 출력 스트림을 돌려줍니다.
protected  int getPort ()
          이 소켓의 port 필드치를 돌려줍니다.
protected abstract  void listen (int backlog)
          수신하는 접속 (접속 요구)을 넣는 큐의 최대 길이을,count 인수로 설정합니다.
protected abstract  void sendUrgentData (int data)
          이 소켓상에서 1 바이트의 긴급 데이터를 송신합니다.
protected  void setPerformancePreferences (int connectionTime, int latency, int bandwidth)
          이 소켓의 퍼포먼스 설정을 실시합니다.
protected  void shutdownInput ()
          이 소켓의 입력 스트림을 「스트림의 마지막」으로 설정합니다.
protected  void shutdownOutput ()
          이 소켓의 출력 스트림을 무효로 합니다.
protected  boolean supportsUrgentData ()
          이 SocketImpl 가 긴급 데이터의 송신을 지원할지 어떨지를 돌려줍니다.
 String toString ()
          이 소켓의 주소와 포트를 String 로서 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 
인터페이스 java.net. SocketOptions 로부터 상속된 메소드
getOption , setOption
 

필드의 상세

fd

protected FileDescriptor  fd
이 소켓의 파일 기술자 객체입니다.


address

protected InetAddress  address
이 소켓의 원격측의 IP 주소입니다.


port

protected int port
이 소켓의 접속처의 원격 호스트상에 있는 포트 번호입니다.


localport

protected int localport
이 소켓의 접속처의 로컬 포트 번호입니다.

생성자 의 상세

SocketImpl

public SocketImpl()
메소드의 상세

create

protected abstract void create(boolean stream)
                        throws IOException 
스트림 소켓 또는 데이터 그램 소켓을 작성합니다.

파라미터:
stream - true 의 경우는 스트림 소켓을 작성해, 그 이외의 경우는 데이터 그램 소켓을 작성한다
예외:
IOException - 소켓의 작성중에 입출력 에러가 발생했을 경우

connect

protected abstract void connect(String  host,
                                int port)
                         throws IOException 
지정된 호스트상의 지정된 포트에 이 소켓을 접속합니다.

파라미터:
host - 원격 호스트명
port - 포트 번호
예외:
IOException - 원격 호스트에게로의 접속시에 입출력 에러가 발생했을 경우

connect

protected abstract void connect(InetAddress  address,
                                int port)
                         throws IOException 
지정된 호스트상의 지정된 포트에 이 소켓을 접속합니다.

파라미터:
address - 원격 호스트의 IP 주소
port - 포트 번호
예외:
IOException - 접속의 시행중에 입출력 에러가 발생했을 경우

connect

protected abstract void connect(SocketAddress  address,
                                int timeout)
                         throws IOException 
지정된 호스트상의 지정된 포트에 이 소켓을 접속합니다. 타임 아웃 0 은 무한의 타임 아웃으로서 해석됩니다. 그 후, 접속이 확립될까 에러가 발생할 때까지, 접속이 블록 됩니다.

파라미터:
address - 원격 호스트의 소켓 주소
timeout - 타임 아웃치 (밀리 세컨드). 타임 아웃 없음의 경우는 0
예외:
IOException - 접속의 시행중에 입출력 에러가 발생했을 경우
도입된 버젼:
1.4

bind

protected abstract void bind(InetAddress  host,
                             int port)
                      throws IOException 
지정된 로컬의 IP 주소와 포트 번호에 이 소켓을 바인드 합니다.

파라미터:
host - 로컬 인터페이스에 속하는 IP 주소
port - 포트 번호
예외:
IOException - 이 소켓을 바인드 할 경우에 입출력 에러가 발생했을 경우

listen

protected abstract void listen(int backlog)
                        throws IOException 
수신하는 접속 (접속 요구)을 넣는 큐의 최대 길이을,count 인수로 설정합니다. 큐가 메워지고 있을 때 접속 요구가 있으면(자), 접속은 거부됩니다.

파라미터:
backlog - 큐의 최대 길이
예외:
IOException - 큐의 생성중에 입출력 에러가 발생했을 경우

accept

protected abstract void accept(SocketImpl  s)
                        throws IOException 
접속을 받아들입니다.

파라미터:
s - 받아들이는 접속
예외:
IOException - 접속의 수락중에 입출력 에러가 발생했을 경우

getInputStream

protected abstract InputStream  getInputStream()
                                       throws IOException 
이 소켓의 입력 스트림을 돌려줍니다.

반환값:
이 소켓으로부터의 입력을 읽어들이기 위한 스트림
예외:
IOException - 입력 스트림의 작성중에 입출력 에러가 발생했을 경우

getOutputStream

protected abstract OutputStream  getOutputStream()
                                         throws IOException 
이 소켓의 출력 스트림을 돌려줍니다.

반환값:
이 소켓에 기입하기 위한 출력 스트림
예외:
IOException - 출력 스트림의 작성중에 입출력 에러가 발생했을 경우

available

protected abstract int available()
                          throws IOException 
이 소켓으로부터 블록없이 읽어들일 수 있는 바이트수를 돌려줍니다.

반환값:
이 소켓으로부터 블록없이 읽어들일 수 있는 바이트수
예외:
IOException - 사용 가능한 바이트수의 결정시에 입출력 에러가 발생했을 경우

close

protected abstract void close()
                       throws IOException 
이 소켓을 닫습니다.

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

shutdownInput

protected void shutdownInput()
                      throws IOException 
이 소켓의 입력 스트림을 「스트림의 마지막」으로 설정합니다. 이 소켓에 송신된 데이터는 모두, 확인된 뒤 아무 통지도 없게 파기됩니다. 소켓으로 shutdownInput()를 호출한 뒤에 소켓의 입력 스트림로부터 읽어들이면(자), 스트림은 EOF 를 돌려줍니다.

예외:
IOException - 이 소켓을 정지할 경우에 입출력 에러가 발생했을 경우
도입된 버젼:
1.3
관련 항목:
Socket.shutdownOutput() , Socket.close() , Socket.setSoLinger(boolean, int)

shutdownOutput

protected void shutdownOutput()
                       throws IOException 
이 소켓의 출력 스트림을 무효로 합니다. TCP 소켓의 경우, 그때까지 기입해진 데이터의 모든 것이, TCP 의 일반적으로의 접속 종료 순서에 따라 송신됩니다. 소켓으로 shutdownOutput()를 호출한 뒤에 소켓의 출력 스트림에 기입하면(자), 스트림은 IOException 를 throw 합니다.

예외:
IOException - 이 소켓을 정지할 경우에 입출력 에러가 발생했을 경우
도입된 버젼:
1.3
관련 항목:
Socket.shutdownInput() , Socket.close() , Socket.setSoLinger(boolean, int)

getFileDescriptor

protected FileDescriptor  getFileDescriptor()
이 소켓의 fd 필드치를 돌려줍니다.

반환값:
이 소켓의 fd 필드치
관련 항목:
fd

getInetAddress

protected InetAddress  getInetAddress()
이 소켓의 address 필드치를 돌려줍니다.

반환값:
이 소켓의 address 필드치
관련 항목:
address

getPort

protected int getPort()
이 소켓의 port 필드치를 돌려줍니다.

반환값:
이 소켓의 port 필드치
관련 항목:
port

supportsUrgentData

protected boolean supportsUrgentData()
이 SocketImpl 가 긴급 데이터의 송신을 지원할지 어떨지를 돌려줍니다. 이 메소드가 서브 클래스내에서 오버라이드(override)되어 있지 않은 한, 디폴트에서는 false 가 돌려주어집니다.

반환값:
긴급 데이터가 지원되고 있는 경우는 true
도입된 버젼:
1.4
관련 항목:
address

sendUrgentData

protected abstract void sendUrgentData(int data)
                                throws IOException 
이 소켓상에서 1 바이트의 긴급 데이터를 송신합니다. 송신되는 바이트는, 파라미터의 하위 8 비트입니다.

파라미터:
data - 송신하는 데이터의 바이트
예외:
IOException - 데이터 송신시에 에러가 발생했을 경우
도입된 버젼:
1.4

getLocalPort

protected int getLocalPort()
이 소켓의 localport 필드치를 돌려줍니다.

반환값:
이 소켓의 localport 필드치
관련 항목:
localport

toString

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

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

setPerformancePreferences

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

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

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

파라미터:
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 도 참조해 주세요.