Development/Java(855)
-
ServerSocket 정보 - 로컬 호스트가 하나 이상의 IP 주소를 가지고 있는 경우, 어떤 주소가 반환될지 예측할 수 없는 경우, 서버 소켓이 네트워크 인터페이스에 아직 연결되지 않은 경우, 서버 소켓..
ServerSocket 정보서버 소켓에 의해 사용 중인 로컬 주소(getInetAddress)와 포트(getLocalPort)를 알려주는 두 가지 get 메서드 제공하는데 이 두 메소드는 네트워크 인터페이스를 명시하지 않았거나 익명 포트를 사용하여 서버 소켓을 생성한 경우 유용하게 사용됩니다. 로컬 호스트가 하나 이상의 IP 주소를 가지고 있는 경우호스트의 IP 주소 중 하나가 반환됩니다. 어떤 주소가 반환될지 예측할 수 없는 경우InetAddress 클래스를 이용하면 도메인 주소와 IP주소를 알아낼 수 있는데 ServerSocket 의 getInetAddress()메소드를 이용하면 IP주소를 확인 할 수 있습니다. try{ ServerSocket server = new ServerSocket(0); S..
-
ServerSocket 클래스의 주요 메서드, ServerSocket 연결받기
ServerSocket 클래스의 주요 메서드
-
소켓을 이용한 입출력 스트림 생성, 소켓정보, 소켓 종료
소켓을 이용한 입출력 스트림 생성· TCP 소켓은 두 개의 네트워크 사이에서 바이트 스트림 통신을 제공합니다.· Socket 클래스는 바이트를 읽기 위한 메서드와 쓰기 위한 메서드를 제공합니다.· 이 두 가지 메서드를 이용하여 클라이언트와 서버간에 통신을 할 수 있습니다. Socket socket = new Socket("211.238.132.50",4000); InputStream in = socket.getIputStream(); OutputStream os = socket.getOutputStream(); 소켓정보Socket 클래스는 로컬의 IP 주소와 포트정보를 알 수 있는 메서드와 Socket 으로 연결된 호스트의 IP 주소와 포트정보를 알 수 있는 메서드를 제공합니다.
-
소켓 옵션 설정(클라이언트 측 소켓에 제공하는 옵션) - TCP_NODELAY, SO_LINGER, SO_TIMEOUT, SO_RCVBUF, SO_SNDBUF, SO_KEEPALIVE, SO_OOBINLINE, SO_REUSEADDR, IP_TOS
소켓 옵션 설정(클라이언트 측 소켓에 제공하는 옵션)소켓 옵션은 자바 소켓 클래스 내부의 네이티브 소켓이 데이터를 보내거나 받는 방법을 지정하는데 클라이언트 측 소켓에 대해 아래에 나열된 9가지 옵션을 제공하고 있습니다.옵션 이름은 소켓을 처음 개발한 버클리 유닉스의 C헤더 파일에 있는 이름을 그대로 빌려왔기 때문에 유닉스의 C명명규칙을 그대로 따르고 있습니다.· TCP_NODELAY· SO_LINGER· SO_TIMEOUT· SO_RCVBUF· SO_SNDBUF· SO_KEEPALIVE· SO_OOBINLINE· SO_REUSEADDR· IP_TOS TCP_NODELAYTCP_NODELAY 설정을 true로 하면 패킷의 크기에 상관없이 가능한 빨리 패킷 전송합니다. 이 옵션은 네이글 알고리즘(Nagle..
-
Serialization(직렬화) 조건 - Serialization 시 경고 메시지, serialVersionUID, serialVersionUID 명시적 지정, serialVersionUID 생성
Serialization(직렬화) 조건 serialVersionUID· Serialization 시 경고 메시지· serialVersionUID· serialVersionUID 명시적 지정· serialVersionUID 생성 Serialization(직렬화) 조건· 객체의 멤버들 중에 Serializable 인터페이스가 구현되지 않은 객체가 있으면, 직렬화 할 수 없습니다.(NonSerializableException)· 직렬화 해야 되는 객체 안의 객체 중 Serializable 인터페이스가 구현되지 않으면서 전송하지 않아도 되는 객체 앞에는 transient 를 선언해줍니다. 그러면 직렬화 대상에서 제외되므로 해당 객체는 직렬화가 가능합니다.· 객체를 직렬화는 Serializable인터페이스를 이용..
-
Serializable 인터페이스, transient
Serializable 인터페이스· 직렬화는 자바에서 java.io.Serializable 이라는 인터페이스로 구현되어 있습니다.· 파일의 입출력 대상이 되는 인스턴스는 이 인터페이스를 구현하거나, 이를 구현하는 클래스를 상속해야 합니다.· Serializable 인터페이스를 구현한 클래스를 생성하면 해당 클래스의 모든 멤버변수는 직렬화 대상이 됩니다. 즉, 자바에서는 Serializable 인터페이스를 구현한 클래스만 직렬화할 수 있도록 제한하고 있습니다.· 객체가 스트림을 통해 직렬화 될 때는 객체에 있는 멤버변수가 직렬화 됩니다.· 객체의 멤버변수 중에 직렬화 대상에서 제외하고 싶은 것은 transient 키워드를 사용하면 됩니다. //Serializable인터페이스가 구현된 클래스는 객체 직렬화 ..