*소켓
- 1982년 Berkeley Software Distribution
- 소프트웨어로 작성된 추상적인 개념의 통신 접속점
- 네트워크 AP는 소켓을 통하여 통신망으로 데이터를 송수신
- 소켓은 AP에서 TCP/IP를 이용하는 창구 역할
- AP와 소켓 사이의 인터페이스 역할
- 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 링크의 단자
- 두 소켓이 연결되면 서로 다른 프로세스 간에 데이터를 전달할 수 있음
- 소켓이 구현됨으로써 네트워크 및 전송 계층의 캡슐화가 가능해짐
- 소켓은 통신을 위한 일종의 통로
- 소켓은 상대방에게 데이터를 보내거나 받는 역할
- 연결을 수동적으로 기다리면 서버, 능동적으로 연결을 하면 클라이언트
*TCP/IP Socket 통신
- 클라이언트 프로그램과 서버 프로그램은 각각 자신의 포트를 통해 통신해야 함
- 연결을 할 때도 포트를 사용하고 데이터를 교환할 때도 포트를 사용
- 자바 프로그램에서 포트를 사용하기 위해서는 소켓을 이용해야 함
- 자바 안에서 소켓의 종류에는 서버 소켓과 클라이언트 소켓이 있음
*서버 소켓(server socket)
- 서버 소켓은 말 그대로 서버 프로그램에서만 사용하는 소켓
- 서버 소켓은 클라이언트로부터 연결 요청이 오기를 기다렸다가 연결 요청이 들어오면 클라이언트와 연결을 맺고 다른 소켓을 만드는 일을 한다.
*클라이언트 소켓(client socket)
- 클라이언트 소켓은 기다릴 필요가 없기 때문에 바로 클라이언트 소켓을 생성
- 클라이언트 프로그램에서 클라이언트 소켓은 서버프로그램으로 연결요청을 하고 데이터 전송을 한다.
'스타트업 > 프로그래밍' 카테고리의 다른 글
[프로그래밍] HTTP 통신 (0) | 2020.09.02 |
---|---|
[프로그래밍] HTTP 통신 vs Socket 통신 (0) | 2020.09.02 |
[프로그래밍] Flask Streaming (0) | 2020.06.17 |
[프로그래밍] Flask File Upload (0) | 2020.06.17 |
[프로그래밍] Flask (1) | 2020.06.16 |