👉OSI 7 계층을 나눈이유는?
통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다.
흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.
프로그램이 네트워크에서 데이터를 주고받을 수 있도록 네트워크 환경에 연결할 수 있게 만들어진 연결부 👉일반적으로 TCP/IP 프로토콜을 이용함
OSI 7 계층의 어플리케이션 계층(application layer)에 존재하는 네트워크 응용 프로그램들은 데이터를 송수신 하기 위해 소켓을 거쳐 전송 계층(trasport layer)의 통신 망으로 전달함으로써 데이터를 송수신 하게 된다.
따라서 소켓은 그 사이에 위치하고 있으며, 응용 프로그램에서 TCP/IP를 이용하는 ⭐인터페이스⭐역할을 한다.
"서브" 정보를 제공한다는 의미로 서버이며, 정보를 제공하는 사업자가 사용하는 컴퓨터 또는 컴퓨터 위에 설치되어 있는 소프트웨어들을 서버라고 부른다.
무언가를 요청하는 사람을 클라이언트라고 한다.
즉, 서비스 및 데이터를 요청하는 쪽이 클라이언트다.
👉웹브라우저인 크롬, 파이어폭스, 익스플로러를 웹 클라이언트라고 합니다
=================
대상 파일: 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();
}
}
}
공부에 있어서 돈이 꼭 필요한 것은 아니다.
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();
}
공부에 있어서 돈이 꼭 필요한 것은 아니다.
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();
}
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();
}