우선 동일한 서버에서 UDP와 TCP를 모두 사용하는 데 문제가 있습니까?
둘째, 동일한 포트 번호를 사용할 수 있습니까?
답변
예, TCP와 UDP 모두에 동일한 포트 번호를 사용할 수 있습니다. 많은 프로토콜이 이미이를 수행합니다. 예를 들어 DNS는 udp / 53 및 tcp / 53에서 작동합니다.
기술적으로 각 프로토콜의 포트 풀은 완전히 독립적이지만 TCP 또는 UDP를 사용할 수있는 상위 수준 프로토콜의 경우 기본적으로 동일한 포트 번호 를 사용하는 것이 관례입니다. .
서버를 작성할 때 TCP 소켓의 이벤트 시퀀스는 UDP 소켓보다 훨씬 어렵다는 점을 명심하십시오. 일반 socket
및 bind
호출 뿐만 아니라 listen
및 accept
.
또한 것을 accept
호출은 새로운 소켓을 반환하고 그건 그 당신이 다음 이벤트를 받기위한 조사도해야한다는 소켓. 서버는 accept
원래 소켓에서 연결 을 계속 하는 동시에 각각 자체 소켓에서 수신 이벤트를 트리거 할 여러 클라이언트를 동시에 서비스 할 준비가되어 있어야합니다 .
답변
첫째, 서버에서 tcp와 udp를 모두 사용하는 데 문제가 없습니다.
둘째, 동일한 포트에서 UDP 및 TCP 요청을 모두 가질 수 있습니다. 각 요청은 소스 IP, 대상 IP, 소스 포트, 대상 포트, PROTOCOL (프로토콜은 TCP 또는 UDP 일 수 있음)에 포함 된 5 배로 식별되기 때문입니다.