2014-12-08 3 views
0

네트워크 프로그래밍에 대한 gafferon에 대한 기사를 읽었으며 UDP 대 TCP의 장단점을 설명합니다.빈번하지 않은 입력 기반 게임을위한 UDP와 TCP 비교

그러나 일정한 입력 스트림이 필요한 게임에서만 작동하는 것처럼 느껴집니다. 나는 카드 게임을 개발하고 있어요, 나는 멀티 플레이어 기능, UDP 또는 TCP를 만들 수있는 가장 효과적인 방법 일 것입니다 무슨 궁금 해서요. 나는 UDP가 아마도 속도면에서 여전히 최선의 선택이라고 느낀다. 그러나 그것은 더 많은 질문을 제기한다.

UDP를 사용하는 경우 패킷이 손실 될 확률이 낮을 때 손실 된 패킷을 어떻게 잃을 지 어떻게 알 수 있습니까?

답변

1

메시지 손실을 어떻게 감지합니까?
수신자는 메시지를받은 사실을 알리는 원래 발신자에게 다시 보낼 필요가 있습니다. 원래 보낸 사람이 정의 된 시간 동안 승인을받지 못하면 메시지를 다시 보냅니다.
또 다른 방법은 각 메시지를 기본값별로 여러 번 보내고 수신기가 중복을 무시하도록하는 것입니다.

이 규칙은 임의로 복잡해질 수 있으며 결국에는 TCP의 일부를 다시 구현합니다. 또한 메시지의 순서를 확인할 수도 있습니다.

UDP는 몇 가지 메시지 (예 : 동영상 스트림 전송 또는 1 인칭 슈팅 게임에서 동기화 된 플레이어 위치 유지)를 잃어 버리지 않는 빈번한 업데이트에 적합합니다. 카드 게임은 속도가 느리지 만 신뢰할 수 있고 주문 된 메시지가 필요합니다. 수천 명의 플레이어가 게임 세션을 호스트하지 않으려면 TCP를 사용하십시오. 그것은 충분히 빠르며 작업하기가 훨씬 쉽습니다.

입력 상수 스트림에서만 작동합니까?
매분마다 하나의 메시지 만 보내는 경우에도 TCP가 정상적으로 작동합니다. "스트림 지향"이라는 용어는 기본적으로 수신자가 메시지가 끝나는 위치를 알지 못한다는 것을 의미합니다. 예를 들어 메시지 길이 앞에 프로토콜 정보를 입력해야합니다.

UDP를 선택하면 더 이상 라이브러리를 사용하지 않는 것이 좋습니다.