https://www.daleseo.com/what-is-a-socket/
소켓이란 무엇인가?
Engineering Blog by Dale Seo
www.daleseo.com
Q1. 서버에서는 포트 하나당 소켓 하나만 바인딩 가능한가요?
A1. 네, 일반적으로 하나의 포트에는 하나의 소켓만 바인딩할 수 있습니다. 즉, 특정 IP 주소와 포트 번호 조합(IP:포트)에는 동시에 하나의 소켓만 바인딩될 수 있습니다. 이를 통해 네트워크 상에서 특정 포트로 들어오는 트래픽이 어느 소켓으로 전달될지 명확하게 결정할 수 있습니다.
Q2. 서버 포트 하나당 소켓 하나가 바인딩 가능하다면 서버 포트 하나당 클라이언트가 하나만 연결 가능한가요?
A2_1. 서버 포트 하나에 하나의 소켓만 바인딩될 수 있지만, 여러 클라이언트가 동시에 연결될 수 있습니다. 이 상황은 특히 TCP 서버의 경우입니다. TCP 서버 소켓은 클라이언트의 연결 요청을 수락할 때마다 새로운 소켓을 생성하여 클라이언트와의 통신을 처리합니다.
A2_2. TCP 서버의 작동 방식
- 서버 소켓 생성 및 바인딩: 서버는 하나의 소켓을 생성하고 이를 특정 포트에 바인딩합니다.
- 연결 대기: 서버 소켓은 listen() 호출을 통해 클라이언트의 연결 요청을 대기합니다.
- 연결 수락: 클라이언트가 연결 요청을 하면, 서버 소켓은 accept()를 호출하여 연결을 수락합니다. 이때, 새로운 소켓이 생성되어 해당 클라이언트와의 통신을 처리합니다.
- 클라이언트 통신: 서버는 새로 생성된 소켓을 통해 클라이언트와 데이터를 주고받습니다. 원래의 서버 소켓은 계속해서 다른 클라이언트의 연결 요청을 대기합니다.
'기타' 카테고리의 다른 글
[npm] --legacy-peer-deps / --force 옵션 차이점 (0) | 2024.09.12 |
---|---|
[VSC] VSCode 현재 포커싱된 곳에서 폴더/파일 생성 단축키 설정 (0) | 2024.08.14 |
VSC 깃허브 코파일럿 사용법 (0) | 2024.06.12 |
AWS를 이용한 정적 웹 사이트 호스팅 실습 (1) | 2024.06.02 |
리드미 템플릿 (0) | 2024.05.24 |