![소켓 통신](https://inblog.ai/_next/image?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%25EC%2586%258C%25EC%25BC%2593%2520%25ED%2586%25B5%25EC%258B%25A0%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3Dkhh&w=1920&q=75)
Contents
인터넷은 물리적으로 전 세계적으로 연결되어 있다.
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F190e681e-8a6a-4223-a5b4-4d781100c280%2Fae17387c-521b-4d35-b33a-79965507295c%2FNotes_240109_120803.jpg?table=block&id=c924d4da-7f8a-44be-9def-b2d50db3be77&cache=v2)
: 클라이언트와 서버, 두 컴퓨터가 특정한 Port를 통해 통신
요청하는 자 : 클라이언트(a)
요청받는 자 : 서버(b)
방향을 보면 클라이언트인지 서버인지 알 수 있음
서버를 ‘갑’이라고 함
ex) 넷플릭스
port
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F190e681e-8a6a-4223-a5b4-4d781100c280%2F1d140b4c-5454-4a97-936e-b48fe05432d7%2FNotes_240109_120803_1.jpg?table=block&id=48e909be-a4fc-4089-b56f-9a8d63a7bd99&cache=v2)
: 어떤 프로그램으로 통신할 지 결정
논리적으로 0번부터 65535번까지의 숫자 중 하나를 사용하며,
특정 프로세스(프로그램)가 데이터를 주고받기 위해 할당받는 번호이다.
2^16 / 16bit / 2Byte
표현 방식
:번호
ex) 네이버
웹서버는 port가 생략되어 있음
보안때문에 :443 씀 (이전에는 :80)
소켓
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F190e681e-8a6a-4223-a5b4-4d781100c280%2Ff36032ac-a7f5-4e77-955b-263bedcec71c%2FNotes_240109_120803_2.jpg?table=block&id=08b36dc8-4112-4eee-91f3-3867c4545b4b&cache=v2)
최소 2개 필요하다.
소켓 개수 : 클라이언트+1 개
스레드 개수 : 클라이언트+1 개
서버 소켓 : 서버 프로그램에서 사용하는 소켓, 클라이언트가 연결해오는 것을 기다림
클라이언트가 연결해 올 때마다 요청은 요청 큐에 쌓이고,
클라이언트 연결되면 accept() 함으로써 요청을 요청 큐에서 꺼내고
Socket 객체가 리턴, 포트번호는 랜덤
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F190e681e-8a6a-4223-a5b4-4d781100c280%2F80414ea4-a3f8-4383-b275-3550053e7512%2FNotes_240109_120803_3.jpg?table=block&id=05df7ea2-952a-464b-a9a7-12a476bc4a16&cache=v2)
서버와 클라이언트 간의 통신을 위해서는 IP주소와 포트번호를 알아야 한다.
서버로 기능하는 컴퓨터를 사용하려면 PC에 다이렉트로 꽂아야 함
루프백 IP
: 자기 자신을 가리키는 가상의 IP 주소
서버가 공유기 밖에 빠져나가지 않고 자기 자신으로 되돌아온다.
LAN (Local Area Network) : 로컬 영역 네트워크
WAN (Wide Area Network) : 대규모 네트워크
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F190e681e-8a6a-4223-a5b4-4d781100c280%2F67c1ae91-cb77-4bc5-a2dd-f8bac6f956bb%2FNotes_240109_120803_4.jpg?table=block&id=50ddc1b5-e1be-4175-8835-42e13005b31c&cache=v2)
Share article