• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

소켓에 대한 질문드립니다.

23.08.18 08:10 작성 조회수 250

0

 강사님. 항상 강의 잘 보고 있습니다.

궁금한게 있어서 질문 드립니다.

제가 이해하기론 클라이언트가 하나 연결될 때마다 서버는 새로운 소켓을 만들고 거기에 클라이언트를 연결한다?로 이해하고 있는데요.

만약 제가 이해한 것이 맞다면 새로 만들어진 소켓에 새 포트번호가 매핑되서 클라이언트랑 통신을 해야할 것 같은데 wireshark로 확인해보면 25000로 클라이언트와 통신을 하고 있어서요.

제가 놓친 것이 무엇인가요?

답변 1

답변을 작성해보세요.

0

accept() 함수가 반환한 새 소켓에 바인드 되는 포트 정보는 리슨에 부여한 번호와 같습니다. 즉, 서버 입장에서는 TCP 25000을 사용하는 소켓이 연결된 클라이언트 개수 만큼 존재합니다. 그럼에도 문제가 발생하지 않는 이유는 소켓을 식별할 때 원격지 IP + 포트 + 로컬 IP + 포트로 식별하기 때문입니다.

그리고 Wireshark으로 직접 확인하는 것은 매우 좋은 습관이며 바람직한 방법이라 하겠습니다. 지금과 같은 방법으로 늘 검증하는 자세가 서버 개발자에게는 꼭 필요합니다. :)