Socket 클래스의 주요 메서드, 종료된 소켓과 연결된 소켓 - isClosed(), isConnected(), toString()

CODEDRAGON Development/Java

반응형

 

 

Socket 클래스의 주요 메서드

소켓 객체는 get메소드를 사용하여 접근할 수 있는 몇가지 속성을 제공하고 있는데 이러한 속성에 접근할 수 있는 get메소드는 다음과 같습니다.

이 속성들은 소켓 연결이 성공하면 값을 받게되며 set메서드는 존재하지 않습니다.

메소드

설명

void close()

소켓 객체를 닫습니다.

InetAddress getInetAddress()

원격 주소

소켓 객체를 InetAddess객체로 반환합니다.

InputStream getInputStream()

소켓 객체로 부터 입력할 수 있는 InputStream 객체를 반환합니다.

InetAddress getLocalAddress()

로컬 주소

소켓 객체의 로컬 주소를 반환합니다.

int getPort()

원격 포트

소켓 객체의 포트를 반환합니다.

int getLocalPort()

로컬 포트

boolean isClosed()

소켓 객체가 닫혀있으면  true, 열려 있으면 false를 반환합니다.

boolean isConnected()

소켓 객체가 연결되어 있으면 true, 연결되어 있지 않으면 false를 반환합니다.

void setSoTimeout(int timeout)

소켓 객체의 시간을 밀리 세컨드로 설정합니다.

 

 

 

종료된 소켓과 연결된 소켓

isClosed()

종료된 소켓인지 확인하는 메소드입니다.

isClosed()메소드는 소켓이 닫혀 있는 경우 true를 반환하고 그렇지 않은 경우에는 false를 반환하기 때문에, 소켓의 상태가 불확실한 경우 예외가 발생할 위험을 감수하는 것보다 isClosed 메서드를 사용하여 확인하는 것이 더 효율적입니다.

if (socket.isClosed()) {

// 소켓이 닫혀 있는 경우 처리코드

} else {

// 소켓이 열려 있는 경우 처리코드

}

 

 

isConnected()

연결된 소켓 유무를 확인하는 메소드입니다.

Socket클래스는 또한 isConnected()메소드를 제공하는데 해당 소켓이 현재 원격 호스트에 연결되었는지 알려 주지 않는 대신, 소켓이 원격 호스트에 연결된 적이 있는지 여부를 알려줍니다.

Boolean connected = socket.isConnected() && ! socket.isClosed();

 

 

toString()

toString() 메서드는 아래와 같은 문자열을 생성하는데 이 정보는 주로 디버깅에 유용하게 사용됩니다. 이 문자열의 형식은 언제든지 변경될 수 있기 때문에 이 형식에 의존적인 코드를 작성해서는 안됩니다.

Socket[addr=www.kisa.or.kr/14.0.67.49,port=80,localport=50077]

 

 

반응형