인프런 커뮤니티 질문&답변

김상현님의 프로필 이미지
김상현

작성한 질문수

Windows 소켓 프로그래밍 입문에서 고성능 서버까지!

에코 클라이언트/서버 테스트 및 Wireshark로 확인

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

해결된 질문

작성

·

310

0

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

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

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

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

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

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

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

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

김상현님의 프로필 이미지
김상현

작성한 질문수

질문하기