2016-03-22 7 views
0

Ich versuche ein kleines Online-Spiel zu bauen (aus Gründen des Lernens), wo Kunden sich dem Spiel anschließen, spielen und gehen, wie sie wollen.Verwenden Sie TCP-Socket, um Clients für die UDP-Verbindung zu "registrieren"?

Ich denke über die Verwendung eines TCP-Sockets für Clients, die das Spiel betreten und verlassen und eine UDP-Verbindung am selben Socket abonnieren.

Wird diese Vorgehensweise verwendet oder ist sie korrekt? Ich schreibe diesen Code in C++ mit Boost.asio.

+0

Definieren Sie "Abonnement einer UDP-Verbindung auf demselben Socket". – EJP

+0

Also baut der Client eine TCP-Verbindung auf dem Socket auf, dann fügt der Server sie dem Spiel hinzu und beginnt den Spielstatus mit diesem Client über UDP zu kommunizieren (auf dem gleichen Socket, der für den Client einzigartig ist) – shane

+1

Meinen Sie auf dem gleichen Port-Nummer*? Sie können keinen TCP-Socket für UDP verwenden. Und es gibt auch keine "UDP-Verbindung". – EJP

Antwort

0

Kann nicht herausfinden, warum Sie UDP überhaupt brauchen? Ist das Spiel latenzkritisch? Was sind Anforderungen?

Für Bildungszwecke würde ich lieber mit TCP bleiben und implementieren etwas arbeiten. Dann je nach Problemen/Anforderungen modifizieren.

-3

Ich denke, Sie sollten besser einen UDP-Socket verwenden, um Client-Beitritt und eine TCP-Verbindung zu behandeln, mit dem Spiel und Abonnieren umzugehen.

+2

Sie denken, dass * warum? * – EJP

+0

Der UDP kann Client-Beitritt effizient behandeln. Und TCP-Verbindung wird für das Abonnieren benötigt. Sie können nicht effizient mit UDP abonnieren. – stan

+0

Warum also die TCP-Verbindung nutzen, um mit dem Spiel umzugehen? Und was ist die Grundlage für Ihre Behauptungen? Und warum erscheint all das nicht in deiner Antwort? – EJP