[공학]클라이언트/서버의 포트 바인딩 및 바인딩 오류 (윈 소켓)
- 최초 등록일
- 2006.11.16
- 최종 저작일
- 2006.11
- 11페이지/ 한컴오피스
- 가격 1,000원
소개글
바인딩이란 응용프로그램의 통신창구인 소켓과 TCP에서 관리하는 메시지 큐를 묶어 줌으로써 응용프로그램에서는 하위 TCP/IP 통신 프로토콜의 세부구조와 내용을 모르더라도 소켓에 송수신함으로써 상대편 응용프로그램과 통신할 수 있도록 하는 계층구조적 응용이 가능하도록 합니다.
본 실험․실습을 통하여 바인딩의 기능, 바인딩 오류의 발생원인, 바인딩 오류의 회피방안과 바인딩 오류 발생시 대처방법에 관해 알아봅시다.
목차
1. 목 적
2. 기초 지식
3. 설비 및 준비사항
4. 실습 절차 및 실습 프로그램
5. 실습 결과
6. 결론 및 토의사항
본문내용
서버는 바인딩을 이용하여 명시적으로 서비스할 주소를 클라이언트에게 알려줍니다. 그림 1에서와 같이 서버에서는 반드시 명시적으로 소켓과 포트를 바인딩 해주어야 하지만 클라이언트는 명시적으로 바인딩하지 않음으로써 소켓이 임의의 포트에 바인딩 되도록 하여야 합니다.
바인딩 오류는 이미 특정 소켓에 바인딩 되어 있는 포트를 또 다른 소켓이 바인딩 하고자 할 경우 바인딩 오류가 발생합니다. 특히, 클라이언트의 소켓을 특정 포트에 바인딩하게 되면 처음 실행하는 클라이언트는 지정한 포트를 바인딩 하여 통신이 가능하지만 다음 클라이언트는 바인딩 오류가 발생하니 클라이언트는 명시적으로 바인딩 하면 안 된다는 것을 기억하도록 합시다.
서버에서는 반드시 명시적으로 소켓과 포트를 바인딩 해주어야 하지만 서버에서도 명시적으로 바인딩하지 않음으로써 소켓이 임의의 포트에 바인딩 되도록 하는 것이 가능할까요?
결론부터 말하면 서버는 반드시 명시적으로 바인딩 해주여야 합니다. 만약 명시적으로 바인딩하지 않으면 윈 소켓 서버의 경우 서버 실행 시 Accept() 함수를 수행하는 과정에서 오류가 발생합니다. 204.204.204.204:52428의 IP와 포트를 가진 임의의 클라이언트가 접속하여 Accept 오류가 발생한 것처럼 보이지만 실제론 서버에서 바인드 하지 않은 것 자체만으로도 오류가 발생합니다.
참고 자료
없음