소켓을 이용한 입출력 스트림 생성, 소켓정보, 소켓 종료

CODEDRAGON Development/Java

반응형

 

 

소켓을 이용한 입출력 스트림 생성

·       TCP 소켓은 두 개의 네트워크 사이에서 바이트 스트림 통신을 제공합니다.

·       Socket 클래스는 바이트를 읽기 위한 메서드와 쓰기 위한 메서드를 제공합니다.

·       이 두 가지 메서드를 이용하여 클라이언트와 서버간에 통신을 할 수 있습니다.

 

java.io.InputStream getInputStream() throws IOException;

java.io.OutputStream getOutputStream() throws IOException;

 

Socket socket = new Socket("211.238.132.50",4000);

InputStream in = socket.getIputStream();

OutputStream os = socket.getOutputStream();

 

 

소켓정보

Socket 클래스는 로컬의 IP 주소와 포트정보를 알 수 있는 메서드와 Socket 으로 연결된 호스트의 IP 주소와 포트정보를 알 수 있는 메서드를 제공합니다.

 

메소드

설명

public InetAddress getInetAddress() throws IOException;

원격 호스트의 IP 주소를 알 수 있는 메서드

public int getPort() throws IOException;

원격 호스트의 PORT 번호를 알 수 있는 메서드

public InetAddress getLocalAddress() throws IOException;

로컬 IP 주소를 알 수 있는 메서드

public int getLocalPort() throws IOException;

로컬 PORT 번호를 알 수 있는 메서드

 

 

 

소켓 종료

·       소켓의 사용이 끝나면 연결을 끊기 위해서 소켓의 close() 메서드를 호출해야 합니다.

·       소켓 종료는 일반적으로 finally 블록에서 처리하고, close() 메서드는 IOException를 발생시키기 때문에 예외처리를 반드시 해야 합니다.

·       소켓은 시스템에 의해 자동으로 종료될 수 있습니다.

·       프로그램이 종료되거나, 가비지 컬렉터에 의해 처리되는 경우에도 소켓이 자동으로 종료됩니다.

·       소켓이 시스템에 의해 자동으로 닫히는 것은 바람직 하지 않으며, close() 메서드를 호출해서 명확히 소켓종료를 해주어야 합니다.

·       소켓이 닫히더라도 getIntAddress() , getPort() 메서드는 사용할 수 있으나, getInputStream(), getOutputStream() 메서드는 사용할 수 없습니다.

 

반응형