UDP 소켓 임시 포트로 열어서 사용하려는데요...?
글쓴이: kkojiband / 작성시간: 금, 2003/11/21 - 5:01오후
예를 들어서,
UDP 를 사용해서 여러 클라이언트 프로그램에 메세지를 보내는 프로그램을 만든다고 할때요,
한 컴퓨터 내에서 여러 클라이언트를 사용하기 위해 임시 포트를 바인드 시켜주는 방식으로 하려고 합니다...
근데 클라이언트 마다 다른 고정 포트를 지정해줘서 사용을 하면 잘 되는데, 위와 같이 임시 포트를 바인드 시켜준 뒤, netstat 에서 포트 번호 확인해서 그 포트들로 메세지를 뿌려주면 메세지가 안갑니다...
스티븐슨씨 책도 보고 있는데, 당췌 왜 안되는지를 모르겠습니다...
주소와 포트 바인드 할때 포트 0으로 해줘서 임시 포트 바인드 해주면 안되는 이유라도 있나요? 왜 고정 포트를 꼭 지정을 해줘야할까요?
테스트를 위해 딴거없이 위의 것만 실행되도록해서 다른 문제는 없는듯합니다...
고수님들 도와주세요~ T.T
Forums:
클라이언트의 포트를 서버에서 어떻게 아나요?클라이언트가 0번으로
클라이언트의 포트를 서버에서 어떻게 아나요?
클라이언트가 0번으로 바인딩하면 할당되는 port 번호를 클라이언트는 몰라도 되고,
바인딩이 끝나면, 서버쪽에 고정된 포트에 sendto로 등록 packet을 임으로 만들어 보내면, 서버는 recvfrom 에서 상대의 포트를 알수 있습니다. 이 포트를 등록해놓으면, 나중에 서버쪽에서 메시지를 보낼일 있을때 사용하면 될 것 같습니다.
---
http://coolengineer.com
-.- 그냥
UDP 프로그램작성시..
보통 기본 UDP 프로그램이 아래와 같이 되겠죠
이것은.... 자신의 주소에 0번 포트를 바인딩 한 효과와 동일합니다.
서버는 recvfrom()으로 읽어서,, 처음 메시지를 보낸 클라이언트라면
배열같은 저장소에 클라이언트의 IP주소 및 포트번호를를
저장하고 있으면 되겟쬬
아마도 님의 소스코드에 문제가 있지 않을까 하는 생각이 ..
함 소스 보여주세요
댓글 달기