Download presentation
Presentation is loading. Please wait.
1
I/O&socket통신 POWERPOINT & GROUP STUDY 한재희 김상훈 최기람 황인준 이어진
2
INDEX I/O 의 개념 JAVA.IO 패키지의 주요클래스 InputStream OutputStream 예제 만들기
코드 및 결과보기 InputStream OutputStream 관련 메소드 질의응답
3
A FUNDAMENTAL CONCEPT IN INPUTSTREAM & OUTPUTSTREAM
I/O의 개념 A FUNDAMENTAL CONCEPT IN INPUTSTREAM & OUTPUTSTREAM 입력(Input)과 출력(Output) : 어떤 방향으로의 데이터의 흐름(Stream)을 말하는 것. java.io 패키지는 I/O 에 관련된 많은 클래스를 제공한다. 흐름의 방향에 따른 분류 : 입력스트림, 출력스트림 데이터의 형태에 따른 분류 : 문자스트림, 바이트스트림
4
major class in Jaba.IO package
JAvA.IO 패키지의 주요클래스 major class in Jaba.IO package Stream (In/Out) 바이트 단위로 데이터를 읽는다. 외부로의 입출력을 수행하는 클래스들. Reader : 문자기반(2bytes)으로 읽어 들이는 기능. Write : 문자기반 (2bytes) 으로 출력하는 기능. File : 물리적인 파일과 directory 처리 Data: 자바의 원시 자료형을 출력하는 기능. Buffered : 시스템의 버퍼를 사용하는 기능.
5
JAvA.IO 패키지의 주요클래스 InputStream : 바이트 입력 스트림을 위한 추상 클래스.
OutputStream : 바이트 출력 스트림을 위한 추상 클래스. major class in Jaba.IO package
6
JAvA.IO 패키지의 주요클래스 Reader : 2바이트 문자단위로 데이터 입력.
Writer : 2바이트 문자단위로 데이터 출력. major class in Jaba.IO package
7
InputStream& outputstream method
In/outstream 관련 메소드 InputStream& outputstream method InputStream int read() : int read(byte []) : int read(byte[], int s, int len) : void close() : OutputStream void write(int value) : void write(byte[] bytes) : void write(byte[] bytes, int s, int e) :
8
JAvA.IO 패키지의 주요클래스 FilterInputStream / FilterOutputStream
: InputStream이나 OutputStream은 byte 단위로 읽고 쓰기를 하기 때문에 char, int ,double, String과 같은 것을 처리하려면 많은 어려움이 있다. 그러나 필터 스트림을 이용하면 수월하게 처리할 수 있다. major class in Jaba.IO package
9
JAvA.IO 패키지의 주요클래스 DataInputStream/ DataOutputStream
: 이 두 클래스는 각각 FilterInputStream과 FilterOutputStream을 상속하고, 각각 DataInput 인터페이스와 DataOutput 인터페이스를 구현한다. major class in Jaba.IO package
10
예제 만들기 : messenger SOCKET, DATAINPUTSTREAM, DATAOUTPUTSTREAM을 이용한 다중 채팅 프로그램 통신의 종류는 크게 TCP와 UDP로 나뉘는데 TCP는 데이터 수신 여부를 확인하는 신뢰성 있는 실시간 프로토콜이고 송수신 시간이 다소 걸린다는 단점이 있다. UDP는 데이터 수신여부를 확인하지 않는 비 동기 프로토콜이다. 일반적인 채팅은 실시간으로 데이터가 송,수신되므로 TCP를 이용해야 한다.
11
Socket과 Socket Server 서버 Server socket Socket Socket 클라이언트 Socket
소켓은 서버가 로컬 IP를 가지고 Port를 열고(Bind) 클라이언트 접속을 기다린다. (Listen) 그리고 클라이언트는 서버의 IP주소와 Port로 접속(Connection)해서 연결되면, 서버와 클라이언트는 Send, Recieve형태로 패킷을 주고받는다. 서로의 통신이 끝나면 close로 접속을 끊는다. SocketServer는 client에서 server로 통신 연결 요청이 오면 Socket을 생성해주는 역할을 한다. 서버 Server socket Socket 생성 Socket Socket DataInputStream.readUTF(); DataOutputStream.writeUTF(); DataInputStream.readUTF(); DataOutputStream.writeUTF(); 연결요청 클라이언트 Socket DataInputStream.readUTF(); DataOutputStream.writeUTF(); 데이터 수신 데이터 송신 클라이언트 Socket DataInputStream.readUTF(); DataOutputStream.writeUTF(); 데이터 수신 데이터 송신 SOCKET, DATAINPUTSTREAM, DATAOUTPUTSTREAM을 이용한 다중 채팅 프로그램
12
서버 Server socket Socket 클라이언트 Socket
DataInputStream.readUTF(); DataOutputStream.writeUTF(); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); name = in.readUTF(); sendToAll(in.readUTF()); sendToAll("#" + name + "님이 나가셨습니다."); 클라이언트 Socket DataInputStream.readUTF(); DataOutputStream.writeUTF(); 데이터 수신 데이터 송신 this.out = new DataOutputStream(socket.getOutputStream()); this.in = new DataInputStream(socket.getInputStream()); out.writeUTF(name); out.writeUTF("[" + name + "] " + message); MultichatGUIClient.this.setMessage(in.readUTF()); SOCKET, DATAINPUTSTREAM, DATAOUTPUTSTREAM을 이용한 다중 채팅 프로그램
13
HERE ARE THE MATERIALS WE PREPARED.
If you have any questions, please feel to ask. THANK YOU HERE ARE THE MATERIALS WE PREPARED.
Similar presentations