[Spring] CH02 소켓통신 기본 (책)

jaegeunsong97·2023년 2월 18일
0

[Fast Campus] Spring

목록 보기
2/44
post-thumbnail

소켓통신의 개념을 이해하고, 단방향 통신 코드를 작성할 수 있다.

📕 TCP/IP 이해

📜 TCP/IP는 무엇인가?

📜 포트는 무엇인가?

📜 Segment, Packet, Frame

📕 버퍼란

📜 stream 버퍼

스트림(Stream)이란?

스트림을 가장 쉽게 이해하려면 수도꼭지를 생각하면 된다. 수도꼭지를 틀면 물이 나오고 수도꼭지를 잠그면 물이 나오지 않는다. A라는 곳에서부터 B라는 곳까지 수도관이 연결되어 있고 A에서 계속 물을 보낸다면 B에서 수도꼭지를 틀때마다 물이 나오게 될 것이다. 여기서 스트림은 A수도관에서 B수도관으로이동하는 물의 흐름이라고 할 수 있다. 프로그래밍에서는 다음과 같은 것들을 스트림이라고 할 수 있다.

  • 파일 데이터 (파일은 그 시작과 끝이 있는 데이터의 스트림이다.)
  • HTTP 응답 데이터 (브라우저가 요청하고 서버가 응답하는 HTTP 응답 데이터도 스트림이다.)
  • 키보드 입력 (사용자가 키보드로 입력하는 문자열은 스트림이다.)

📜 버퍼

import java.io.IOException;
import java.io.InputStream;

public class StreamEx01 {
	public static void main(String[] args) {
    	InputStream in = System.in;
		try {
			int inData = in.read();
            System.out.println(inData);
			System.out.println((char)inData);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
import java.io.InputStream;
import java.io.InputStreamReader;

public class StreamEx02 {
	public static void main(String[] args) {
		InputStream in = System.in;
		InputStreamReader reader = new InputStreamReader(in);
		try {
			char[] inData = new char[1];
			//char[] inData = new char[2];
			//char[] inData = new char[3];
			reader.read(inData);
			System.out.println(inData);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class StreamEx03 {
	public static void main(String[] args) {
		InputStream in = System.in;
		InputStreamReader reader = new InputStreamReader(in);
		BufferedReader br = new BufferedReader(reader);
		try {
			String inData = br.readLine();
			System.out.println(inData);
		} catch (Exception e) {
			e.printStackTrace();
		}
    }
}

📕 소켓통신 이해

📜 소켓통신이란

📜 단방향 통신 이해

📜 단방향 통신 실습코드(클라이언트 쓰기, 서버 읽기)

📜 반이중 통신 실습 코드(클라이언트 쓰기, 서버읽고 쓰기, 클라이언트 읽기)

📜 실습코드

https://github.com/codingspecialist/socket-study.git

profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글