JAVA 21일차

MOZZI KIM·2022년 11월 21일
0

JAVA

목록 보기
21/21
post-thumbnail

1. OSI 7 계층이란?

📌OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.

👉OSI 7 계층을 나눈이유는?
통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다.
흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.


2. Socket 에 대하여 설명하시오.

📌Socket이란?

프로그램이 네트워크에서 데이터를 주고받을 수 있도록 네트워크 환경에 연결할 수 있게 만들어진 연결부 👉일반적으로 TCP/IP 프로토콜을 이용함

OSI 7 계층의 어플리케이션 계층(application layer)에 존재하는 네트워크 응용 프로그램들은 데이터를 송수신 하기 위해 소켓을 거쳐 전송 계층(trasport layer)의 통신 망으로 전달함으로써 데이터를 송수신 하게 된다.
따라서 소켓은 그 사이에 위치하고 있으며, 응용 프로그램에서 TCP/IP를 이용하는 ⭐인터페이스⭐역할을 한다.


3. 서버와 클라이언트에 대하여 설명하시오.

📌서버(Server) 란?

"서브" 정보를 제공한다는 의미로 서버이며, 정보를 제공하는 사업자가 사용하는 컴퓨터 또는 컴퓨터 위에 설치되어 있는 소프트웨어들을 서버라고 부른다.

📌클라이언트(Client) 란?

무언가를 요청하는 사람을 클라이언트라고 한다.
즉, 서비스 및 데이터를 요청하는 쪽이 클라이언트다.

👉웹브라우저인 크롬, 파이어폭스, 익스플로러를 웹 클라이언트라고 합니다


4. input(Output)Stream 과 문자 스트림의 차이에 대하여 설명하시오.




5. IO 스트림을 이용하여 아래와 같이 프로그램을 완성하시오.

=================
대상 파일: a.java
사본 이름: x:\b.java
package MyselfPrac;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;

public class ByteFileCopy {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("대상파일 : ");
		String src = sc.nextLine();
		System.out.print("사본이름 : ");
		String dst = sc.nextLine();

		try (InputStream in = new FileInputStream(src); 
        OutputStream out = new FileOutputStream(dst)) {
			byte buf[] = new byte[1024];
			int len;

			while (true) {
				len = in.read(buf);
                // 배열 buf로 데이터를 읽어 들이고, (더이상 읽어 들일 데이터 없으면 -1반환)
				if (len == -1)
					break;
				out.write(buf, 0, len); // len바이트만큼 데이터를 저장
				sc.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

6.String.txt 파일에 아래의 문구가 들어가도록 짜시오.

공부에 있어서 돈이 꼭 필요한 것은 아니다.
Life is long if you know how to use it.

String ks = "공부에 있어서 돈이 꼭 필요한 것은 아니다.";
		String es = "Life is long if you know how usde it.";
		
		try(BufferedWriter bw = new BufferedWriter(new FileWriter("String.txt"))){
			bw.write(ks, 0 , ks.length());
			bw.newLine(); //줄바꿈 문자를 삽임 (운영체제 별로 표시 방법이 다르다.)
			bw.write('\n'); //줄바꿈
			bw.write(es, 0, es.length());
		}
		catch (Exception e) {
			e.printStackTrace();
		}

7.String.txt 을 읽어 들여 화면에 아래와 같이 출력 되도록 하시오.

공부에 있어서 돈이 꼭 필요한 것은 아니다.
Life is long if you know how to use it.

try (Reader in = new FileReader("String.txt")) { // 문자 입력 스트림 생성
			int ch;

			while (true) {
				ch = in.read(); // 문자를 하나씩 읽는다.
				if (ch == -1) // 더 이상 읽을 문자가 없다면,
					break;
				System.out.print((char) ch); // 문자를 하나씩 출력한다.
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

8.data.txt 파일에 A부터 Z까지의 글자들이 들어 가도록 하시오.

try(Writer out = new FileWriter("data.txt")) { // 문자 출력 스트림 생성
	         for(int ch = (int)'A'; ch < (int)('Z'+1); ch++)
	            out.write(ch);
	      }
	      catch(IOException e) {
	         e.printStackTrace();
	      }
profile
코린이

0개의 댓글