자바네트워크 제 13 주 URLConnection 클래스 IP 멀티캐스팅 소켓
여러분들의 질문 지난 주 실습 내용 질문
토론을 위한 질문
책 읽기 질문
단어 퀴즈
다음주 과제 Java NIO 및 채널과 셀렉터 공부해오기
제 12 장 URLConnection 클래스 URLConnection 객체 생성 URLConnection 클래스의 메소드 기타 메소드들
URLConnection 객체 생성 URLConnection 클래스는 추상 클래스이다. URL 클래스의 openConnection() 메소드로 URLConnection 객 체를 얻는다.
예제
URLConnection 클래스 메소드 헤더의 구문 분석 메소드들 서버로부터 데이터를 가져오는 메소드들 URLConnection 의 환경 설정 메소드 기타 메소드들
헤더의 구문 분석 메소드들 MIME(Multipurpose Internet Mail Extension) 타입 : RFCs 2045, 2046, 2047, 2049, 4288, 4289 일반유형 / 세부유형 : text/html, text/plain, image/gif, image/jpeg, video/mpeg, application/octet-stream, … public String getContentType(), null when no data public int getContentLength(), -1 when no data public String getContentEncoding(), null when no encoding, usually base64 or quoted printable public long getDate(), 전송된 날짜 public long getExpiration(), 캐시에서 없어지는 날짜 public long getLastModified(), 최종수정된 날짜
서버로부터 데이터를 가져오 는 메소드들 public InputStream getInputStream(), public OutputStream getOutputStream(), use setDoOutput(true) before using this method public Object getContent() throws IOException, currently available types, text/plain, image/gif, image/jpeg
URLConnection 의 환경 설정 메소드 URLConnection 은 setup 상태와 connected 상태를 갖는다. 기 본은 setup 상태이다. 환경 설정은 setup 상태에서 한다. connected 상태로의 전환은 connect() 또는 헤더 또는 데이 터를 읽는 함수 실행이 자동으로 발생한다. public void setDoInput(boolean doinput), 자료를 읽을 수 있 도록 설정 (true)/ 해제 (false) 한다. public void setDoOutput(boolean dooutput), 자료를 쓸 수 있 도록 설정 (true)/ 해제 (false) 한다. public boolean getDoInput() public boolean getDoOutput() setup 상태가 아니면 IllegalAccess 오류 발생
URLConnection 의 환경 설정 메소드 public void setRequestProperty(String key, String value) public String getRequestProperty(String key) public void setUseCaches(boolean usecaches) public boolean getUseCaches() public void setAllowUserInteraction() public boolean getUserInteraction() public void setIfModifiedSince(long timemillis), 주어진 시간 이후에 수정된 파일만 읽도록 설정 public long getIfModifiedSince() public URL getURL() public abstract void connect() throws IOException, 호스트와 명시적으로 연결 설정
기타 메소드들 public String getHeaderField(String name), null if not exist public int getHeaderFieldInt(String name, int default), return default if not possible public long getHeaderFieldDate(String name, long default) public String getHeaderField(int n), n 번째 key-value 쌍의 value 를 반환 public String getHeaderFieldKey(int n), n 번 째 key-value 쌍의 key 값을 반환 protected static String guessContentTypeFromName(String name) protected static String guessContentTypeFromStream(InputStream is)
제 13 장 IP 멀티캐스팅 소켓 Multicast( 멀티캐스트 ) MulticastSocket 클래스 멀티캐스트 패킷 수신 멀티캐스트 패킷 송신
Introduction Unicast : one-to-one communication Multicast : one-to-many communication Need to multicast function for Router
What Is a Multicast Socket? Broadcast : send to all internet connected hosts Unicast : transmission is the sending of messages to a single network destination host on a packet switching network Multicast : sends data only to interested destinations by using special address assignments
Broadcast
Multicast
Unicast
Anycast
Geocast
Multicast vs Unicast
Multicast vs Broadcast
TTL(Time to live) Maximum number of routers to pass
IP, UDP header UDP Datagram
Multicast address and group ~ : D class Each host can join freely
Client and Server Multicast uses UDP Use MulticastDatagram TTL values 0: local host 1: local subnet 16: local campus 32: high band sites in the nation 48: all host in a nation 64: all host in the same continent 128: high band sites in the world 256: all sites in the world
Router and Routing Internet
Working with Multicast Sockets MulticastSocket class Join multicast group: joinGroup()
Two Simple Examples MulticastSniffer
MulticastSender Router do not support Multicast