8장 네트워크.

Slides:



Advertisements
Similar presentations
Computer Network Lab UDP 데이터그램 과 소켓 강 동 호 컴퓨터 네트워크 실험실.
Advertisements

Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL Section 3 : TCP 소켓 Section 4 : UDP 소켓.
HTTPS Packet Capture Tutorial
Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL

1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
네트워킹 프로그래밍과 java.net 패키지
네트워크 프로그래밍 및 실습.
CHAP 22. 블루투스.
Oozie Web API 기능 테스트 이승엽.
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Network Lab. Byoung-Son, Choi
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
Department of Computer Science and Engineering
PHP입문 Izayoi 김조흔.
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
Chap11 네트워킹 11.1 네트워킹의 개요와 java.net 패키지 11.2 인터넷 주소와 URL 11.3 TCP 소켓
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Load Balancing L4와 L7은 어떻게 동작할까?.
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
JAVA 프로그래밍 12장 네트워킹(Networking).
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
명품 JAVA Programming 제 16 장 네트워크.
Department of Computer Engineering
Lesson 6. 형변환.
명품 JAVA Programming 제 16 장 네트워크.
Department of Computer Engineering
자바네트워크 제9주 TCP/IP 클라이언트 소켓 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
8장. 원격지 시스템 관리하기.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
Java의 정석 제 15 장 네트워킹(Networking) Java 정석 남궁성 강의
Department of Computer Science and Engineering
TCP/IP Socket Programming…
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
15장 네트워킹 15.1 네트워킹의 개요와 java.net 패키지 15.2 인터넷 주소와 URL 15.3 TCP 소켓
Chapter 5 UDP Socket 소켓 프로그래밍.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
I/O&socket통신 POWERPOINT & GROUP STUDY 한재희 김상훈 최기람 황인준 이어진.
Trivial File Transfer Protocol (TFTP)
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
22 장 전송층(Transport Layer)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
21 장 전송층(Transport Layer)
자바 암호 프로그래밍 Java Cryptography Programming
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
MAIL CLIENT 김창우 윤성훈 이경재.
Department of Computer Engineering
JA A V W. 06.
CHAP 21. 전화, SMS, 주소록.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Chapter 04. TCP 서버/클라이언트.
모바일(폰)메일 서비스 정흠수 최동훈.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
MIDP 네트워크 프로그래밍 ps lab 김윤경.
다자간 채팅프로그램 김형도 허영민
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
JSP Programming with a Workbook
Network Lab. Young-Chul Hwang
ARP.
Presentation transcript:

8장 네트워크

개요 Network Class URL Class Socket Class Message Class HttpSocket Class 웹에서 이미지 다운로드 받기

네트워크 기초 TCP (Transmission Control Protocol) 두 시스템간의 신뢰성 높은 데이터 통신을 위한 연결 기반의 통신 프로토콜 UDP (User Datagram Protocol) 데이터그램이라 불리는 데이터 패킷들을 이용하여 통신하는 프로토콜

Network Class 응용 프로그램이 TCP/IP 인터넷 통신을 하기 위한 인터넷 접근 API .

Network 클래스의 주요 method public static int connect() TCP/IP 인터넷 접근을 시도한다. public static void disconnect() TCP/IP 인터넷 접근을 종료한다.

URL Class 플랫폼 외부와의 데이타 통신을 위해 소켓을 생성해주는 클래스이다. 모든 소켓은 URL(RFC1738 참조) 방식으로 생성된다. URL 의 sheme 부분에 의해 생성되는 소켓의 성격이 구분된다. 소켓의 성격은 stream 소켓과 그렇지 않은 것으로 나뉜다.

URL 클래스의 주요 method public static Socket find(String url)

소켓이 TCP인 경우 socket://<IP주소>:<포트번호>[/<모드>/<타임아웃>] 모드: r(읽기 전용), w(쓰기 전용), rw(읽기쓰기 가능) 타임아웃: 밀리 초 단위. 0 이면 무한대 예) socket://203.237.111.111:80/rw/3000 모드와 타임 아웃은 데이터 송수신 때 적용되며 생략이 될 경우 디폴트로 모드는 "rw", 타임아웃은 "0”이다.

소켓이 UDP인 경우 datagram://:<포트번호>[/<모드>/<타임아웃>] 모드: r(읽기 전용), w(쓰기 전용), rw(읽기쓰기 가능) 타임아웃: 밀리 초 단위. 0 이면 무한대 예)datagram://:80/rw/3000 모드와 타임 아웃은 데이터 송수신 때 적용되며 생략이 될 경우 디폴트로 모드는 "rw", 타임아웃은 "0”이다.

소켓이 serial인 경우 comm://<포트번호>:<제어문자열> 제어 문자열은 HAL API와 관련된 것이다. 무선 단말기를 이용하여 통신하는 방법 중 하나인 시리얼 통신은 표준 플랫폼의 HAL에 정의되어 있다. 예를 들어 제어 문자열에는 baudrate는 통신 속도를 나타내는 것이다. 다음의 예는 모두 디폴트 값들이다. 예) comm://0:baudrate=115200,parity=no,size=8,flow=no

소켓이 Http인 경우 HTTP URL 예) http://203.237.100.000:80

Socket Class Socket 클래스는 플랫폼 외부와의 데이터 통신을 가능하게 하는 인터페이스이다. 소켓은 스트림(stream) 소켓과 그렇지 않은 소켓으로 구분된다. 즉 스트림 소켓은 소켓을 통해서 스트림을 생성하고 스트림을 통해 데이터를 전송하며 그렇지 않은 경우 메시지(Message) 형태로 통신한다. 스트림 소켓의 대표적인 예가 TCP 통신을 하는 소켓이고 메시지형태로 통신을 하는 소켓의 대표적인 예가 UDP 통신을 하는 소켓이다

Socket 클래스의 주요 method public InputStream getInputStream() public OutputStream getOutputStream() 스트림 소켓일 경우 OutputStream 을 반환한다. public boolean isStream() 스트림 소켓인지여부를 알려준다. public int getMessageCount() 스트림 소켓이 아닐 경우 앞으로 이 소켓으로부터 읽을 수 있는 메시지 개수를 알려준다. public int getMessageMaxLength() 스트림 소켓이 아닐 경우 한 메시지에 실을 수 있는 데이터의 최대길이를 알려준다.

Socket 클래스의 주요 method public void send(Message m) 스트림 소켓이 아닐 경우 메시지를 전송한다. public void recv(Message msg) 스트림 소켓이 아닐 경우 메세지를 수신한다. public void close() 소켓을 닫는다. 스트림 소켓일 경우 만약 getInputStream() 이나 getOutputStream() 으로 InputStream 혹은 OutputStream 을 반환한 경우 소켓이 완전히 닫히기 위해서는 이 메소드와 함께 InputStream 혹은 OutputStream 의 close() 메소드가 불려 져야 한다. public Socket accept() 서버 기능을 지원하는 소켓이 새롭게 클라이언트와 연결된 소켓을 반환한다.

Message Class 소켓으로 전송할 수 있는 메시지를 정의한 클래스이며 UDP통신의 단위이다. 신뢰가 보장되어야 하는 통신에는 사용할 수가 없을 것이며 전송되는 패킷 중에서 분실해도 크게 상관없는 서비스에 주로 사용될 수 있다. 일례로 영상파일 같이 약간의 패킷 손실이 있어도 동영상 재생에 크게 문제되지 않는 서비스가 있을 것이다

Message 클래스의 주요 생성자 public Message(java.lang.String addr, byte[] data) 소켓으로 전송할 메시지를 생성한다. public Message(java.lang.String addr, byte[] data, int off, int len) 매개변수 addr 메시지 주소 data 메시지 버퍼 off 메시지 버퍼의 오프셋 len 메시지 버퍼의 길이

Message 클래스의 주요 method public byte[] getData() public int getLength() 메시지 버퍼를 반환한다. public int getLength() 메시지 버퍼의 길이를 반환한다. public int setLength(int val) 메시지 길이를 설정한다. public int getOffset() 메시지 버퍼의 오프셋을 반환한다. public int setOffset(int val) 메시지 버퍼의 오프셋을 설정한다.

Message 클래스의 주요 method public String getAddress() 메시지의 주소를 반환한다. public int getAddressInt() public Date getDate() 메시지가 전송된 시간을 반환한다. public void getDate(Date date) 메시지가 전송된 시간을 설정한다. public void getAddressInt(int addr) 메시지의 주소 값을 지정한다.

HttpSocket Class HTTP 연결에 관련된 소켓 인터페이스로서 HTTP프로토콜의 대부분을 제공한다.

HttpSocket 클래스의 주요 method public void close() HTTP 소켓을 닫는다. public InputStream getInputStream() InputStream을 반환한다. public OutputStream getOutputStream() OutputStream을 반환한다. public String getURL() URL을 반환한다. public String getProtocol() URL의 프로토콜 부분을 반환한다. public String getHost() URL의 호스트 부분을 반환한다. public String getFile() URL의 파일 부분을 반환한다.

HttpSocket 클래스의 주요 method public String getRef() URL의 앵커 부분을 반환한다. public String getQuery() URL의 쿼리 부분을 반환한다. public int getPort() URL의 포트 부분을 반환한다. public String getRequestMethod() 요청 메소드를 반환한다. public void setRequestMethod(String method) 요청 메소드를 설정한다. public String getRequestProperty(String key) 매개변수 key 에 해당하는 request property 값을 반환한다. public void setRequestProperty(String key, String value) request property를 설정한다.

HttpSocket 클래스의 주요 method public int getResponseCode() 서버의 응답코드를 반환한다. public String getResponseMessage() 서버의 응답 메시지를 반환한다. public long getLength() 수신한 컨텐트의 길이를 바이트 단위로 반환한다. public String getType() 수신한 컨텐트의 타입을 반환한다. public String getEncoding() 수신한 컨텐트의 인코딩을 반환한다. public long getExpiration() 컨텐트의 만료일을 반환한다.

HttpSocket 클래스의 주요 method public long getDate() 컨텐트의 작성일을 반환한다. public long getLastModified() 컨텐트의 최근 수정시간을 반환한다. public String getHeaderField(String name) 서버로부터의 응답 헤더 값을 반환한다. public void setProxy(String host, int port) HTTP 프락시를 지정한다. public boolean isRelocatable() 컨텐츠의 위치가 옮겨져서 서버가 다른 서버로의 접속을 유도하는 경우를 알려 준다. public HttpSocket relocation() 컨텐츠의 위치가 옮겨져서 서버가 다른 서버로의 접속을 유도하여 다른 서버로 접속하여 새로운 HTTP 소켓을 반환한다.

예제 8-1