Open myway00 opened 1 year ago
- Server Socket : 클라이언트의 연결 요청을 수신
- Socket : accept() 후 클라이언트와 서버의 소켓 통신 수행 (실질적인 데이터 송수신)
listen() API가 클라이언트의 연결 요청을 확인하고 문제없이 리턴한다고 해서, 클라이언트와의 연결 과정이 모두 완료되는 것은 아닙니다.
아직 실질적인 소켓 연결(Connection)을 수립하는 절차 => 최종적으로 연결 요청을 받아들이는 역할을 수행하는 것은 accept() API
accept() API는 그 사전적 의미만큼 직관적인 역할을 수행합니다.
연결 요청을 받아들여(accept) 소켓 간 연결을 수립하는 것이죠.
그런데 주의할 점은 최종적으로 데이터 통신을 위해 연결되는 소켓이, 앞서 bind() 또는 listen() API에서 사용한 서버 소켓(Server Socket)이 아니라는 것입니다.
최종적으로 클라이언트 소켓(Client Socket)과 연결(Connection)이 만들어지는 소켓(Socket)은 앞서 사용한 서버 소켓(Server Socket)이 아니라, accept API 내부에서 새로 만들어지는 소켓(Socket)
서버 소켓(Server Socket)의 핵심 역할은 클라이언트의 연결 요청을 수신하는 것입니다.
실질적인 데이터 송수신은 accept API에서 생성된, 연결(Connection)이 수립(Established)된 소켓(Socket)을 통해 처리됩니다.
톰캣의 소켓 ?
image 출처