네트워크 (Network)

Jieun·2023년 1월 3일
0

📝 네트워크 공부 및 12시부터 자습
#230103

📌네트워크(Network)

여러대의 컴퓨터를 통신회선으로 연결한 것

🏷️서버(Server)와 클라이언트(Client)

서버(Server) : 서비스를 제공하는 프로그램 또는 컴퓨터
클라이언트(Cllient) : 서비스를 요청하여 사용하는 프로그램 또는 컴퓨터

🏷️IP(Internet Protocol) 주소

네트워크 상에서 컴퓨터를 식별하는 번호. 종류2개

🏷️포트(Port)

컴퓨터 내에서 프로그램을 식별하는 번호.
1개의 프로그램에 1개의 포트만 연결 가능함.
클라이언트는 서버 연결 요청시 IP주소와 포트번호를 알아야함
=> 포트번호를 알면 어떤 프로그램이랑 연결하는지 알 수 있다.


📌소켓 프로그래밍

소켓을 이용한 프로그래밍

소켓(Socket)

  • 프로세스 간의 통신에 사용되는 양쪽 끝단
  • 서버와 클라이언트가 통신을 하기 위한 매개체 (그림참고)

서버용 소켓(ServerSocket)

  • Port와 연결되어 외부 요청을 기다리는 역할
  • 클라이언트 요청이 올 경우, 이를 수락(accept)하고 클라이언트가 사용할 수 있는 소켓을 생성
  • 서버 소켓과 클라이언트 소켓이 연결되어 데이터 통신이 가능해짐


프로토콜(Protocol)

  • 컴퓨터 간의 정보를 주고 받을 때 통신방법에 대한 규약
    (무조건 지켜야 하는것).
  • 지키지 않으면 통신이 안됨.
  • 접속 / 전달방식 / 데이터의 형식 / 검증방법

✔️ 프로토콜의 종류

1. TCP(Transmission Control Protocol) : 전달 제어 규약

  • 데이터의 전달의 신뢰성을 최대한 보장하기 위한 방식
  • 연결지향형 통신
  • 순차적으로 데이터를 전송하고 확인 및 오류시 재전송.
  • 보통 데이터 정확성이 높은 은행권에서 많이 사용.

2. UDP(User Datagram Protocol)

  • 데이터의 빠른 전달만을 보장하기 위한 방식
  • 비연결 지향형 통신
  • 확인 및 재전송 작없 없음
  • 실시간 스트리밍 서비스에 많이 사용


🏷️ TCP 소켓 프로그래밍

시작 전 공통 작업순서
1. 이클립스 파일위치 다르게 설정하여, 서버용, 클라이언트용 2개 파일을 연다.
2. 각 이클립스에 run클래스와 과 작업파일클래스 만들어두고 작업시작.

✔️ [서버용] 소켓 프로그래밍 순서

예제풀이는 이클립스 참고하면서 보기

  1. 서버의 포트번호 정함
  2. 서버용 소켓 객체 생성
  3. 클라이언트 쪽에서 접속 요청이 오길 기다림
  4. 접속 요청이 오면 요청 수락 후 해당 클라이언트에 대한 소켓 객체 생성
  5. 연결된 클라이언트와 입출력 스트림 생성
  6. 보조 스트림을 통해 성능 개선
  7. 스트림을 통해 읽고 쓰기
  8. 통신 종료

✔️ [클라이언트용] 소켓 프로그래밍 순서

  1. 서버의 IP주소와 서버가 정한 포트번호를 매개변수로 하여
    클라이언트용 소켓 객체 생성
  2. 서버와의 입출력 스트림 오픈
  3. 보조 스트림을 통해 성능 개선
  4. 스트림을 통해 읽고 쓰기
  5. 통신 종료
profile
👩‍💼👩‍💼➡️➡️➡️👩‍💻👩‍💻 생산자의 삶을 살기 위해 개발공부중

0개의 댓글