
네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
1. 물리 계층
2. 데이터 링크 계층
3. 네트워크 계층
4. 전송 계층
5. 세션 계층
6. 표현 계층
7. 응용 계층
네트워크 환경에 연결할 수 있게 만들어진 연결부
TCP/IP 기반 네트워크 통신에서 데이터 송수신의 마지막 접점.
소켓통신이란 이러한 소켓을 통해 서버-클라이언트 간 데이터를 주고받는 양방향 연결 지향성 통신을 말한다. 보통 지속적으로 연결을 유지하면서 실시간으로 데이터를 주고받아야하는 경우에 사용된다.
참고 링크: https://onlyfor-me-blog.tistory.com/449
https://jink1982.tistory.com/182
서버: 데이터를 제공하는 쪽
클라이언트: 데이터를 요구하여 제공받는 쪽
<서버 소켓 구현하기>
<클라이언트 소켓 구현하기>


IO Stream의 종류
1) 바이트 입출력 스트림
2) 문자 입출력 스트림
cf. 영어 abc는 문자이긴 하나 1단어당 1byte여서 바이트 입출력 스트림을 이용해도 된다. 단, 한글은 2byte여서 무조건 문자 입출력 스트림만 사용 할수 있다.
출처: https://velog.io/@yeppi/패키지3-java.io-의-입출력스트림-InputStream-OutputStream-Reader-Writer
=================
대상 파일: a.java
사본 이름: x:\b.java
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 IOStream {
public static void main(String[] args) {
/*=================
대상 파일: a.java
사본 이름: x:\b.java*/
Scanner sc = new Scanner(System.in);
System.out.println("==================");
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)){
int data;
while (true) {
data = in.read();
if(data == -1)
break;
out.write(data);
}
}
catch (IOException e) {
e.printStackTrace();
}
System.out.println("파일 복사가 완료되었습니다.");
sc.close();
}
}
공부에 있어서 돈이 꼭 필요한 것은 아니다.
Life is long if you know how to use it.
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class P42 {
public static void main(String[] args) {
String ks = "공부에 있어서 돈이 꼭 필요한 것은 아니다.";
String es = "Life is long if you know how to use it";
try(BufferedWriter bw = new BufferedWriter(new FileWriter("String.txt"))){
bw.write(ks, 0, ks.length());
bw.newLine();
bw.write(es, 0, es.length());
}
catch (IOException e) {
e.printStackTrace();
}
}
}
공부에 있어서 돈이 꼭 필요한 것은 아니다.
Life is long if you know how to use it.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class StringReader {
public static void main(String[] args) {
try(BufferedReader br = new BufferedReader(new FileReader("String.txt"))) {
String str;
while(true) {
str = br.readLine(); // 한 문장 읽어 들이기
if(str == null)
break;
System.out.println(str);
}
}
catch(IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class SimpleWriter {
public static void main(String[] args) {
try (Writer out = new FileWriter("data.txt")) {
for (int i = 65; i < 65+26; i++) {
out.write(i);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}