2014-09-19 3 views
0

저는 파이썬에서 클라이언트 - 서버 게임을 개발 중이며, 각 퀀텀은 서버가 클라이언트에게 게임 상태를 전송해야합니다.이것은 TCP와 UDP 프로그램의 좋은 행동입니까?

UDP 및 TCP 연결을 통해이를 개발했습니다. UDP는 게임 상태의 속도 전송을 보장하고 TCP는 안정성 부분에 사용됩니다.

이 방법이 좋은 방법일까요?

while playing: 
    data = computeGameData() 
    sendNewPlayUDP(data) 
    sendNewPlayTCP(data) 

    time.sleep(sleeptime) 

나는 그것을 테스트하고 잘 작동하는 것 같다,하지만 스레드 때문에 TCP가 어려움을 겪고으로 차단할 수 있는지 궁금해 :

그래서 각 양자 서버는이 같은 데이터를 전송합니다. 어쩌면 더 나은 방법이있을 수 있습니다. 에 따르면

+0

내가 아는 한, 많은 소프트웨어가 TCP와 UDP를 모두 사용하고 있습니다. – MicroAleX

+0

물론 그들은이 방법으로 사용합니까? udp와 tcp로 모든 상태를 보냄으로써? – Waroulolz

답변

1

:

http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/

전혀 TCP를 사용하지 말아야합니다. 이 기사에서는 UDP를 사용하고 절대적으로 수신하고 확인하려는 패킷에 대한 추가 로직을 추가 할 것을 권장합니다. 또한이 문서에서는 TCP 패킷이 UDP 패킷과 간섭하여 UDP 패킷 손실률이 증가 할 수 있다고 설명합니다. 많은 경우에 허용 될 수

https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

잃어버린 패킷 :

당신은 또한에 모습을 가질 수있다. TCP와 UDP 채널에서 동일한 데이터를 전송하는 것은 다소 과장된 것처럼 보입니다.

+0

나는 약간 동의한다. udp와 tcp로 데이터를 보내는 것은 결국 쉽게 작동하는 것처럼 보입니다. 내 udp 처리기에 몇 가지 추가 논리를 추가하여이 변경하고 훨씬 더 작동합니다. – Waroulolz

관련 문제