Ich brauche eine EXPERT-Meinung bitte, und tut mir leid, wenn meine Frage selbst eine verworrene Frage ist.Struktur einer Voice-Chat-Anwendung (Client/Server)?
Ich las über Struktur von VOIP-Anwendungen (Client/Server). Und meistens wird UDP für Voice Streams empfohlen. Ich habe auch einige VoiceChat-Anwendungen wie Paltalk und Inspeak überprüft und ihre Sites erwähnen, dass sie UDP-Voice-Stream verwenden, die aus den folgenden Gründen nicht korrekt erscheinen.
Ich untersuchte den Verkehr/Ports von Paltalk und Inspeak verwendet. Sie haben UDP- und TCP-Ports geöffnet und mit einem Paket-Sniffer kann ich sehen, dass es nicht viel UDP-Kommunikation gibt, aber meistens ist es die TCP-Kommunikation.
Auch soweit ich weiß, in UDP Protocol Server kann keine Daten an einen Client hinter NAT (DSL Router) senden. Und "UDP Braodcast" ist keine Option für "Internet" -basierte Voice-Chat-Anwendungen. THAT WARUM YAHOO in ihrer Dokumentation erwähnt, dass Yahoo Messenger zu TCP wechseln, wenn UDP-Kommunikation nicht möglich ist.
Also meine Frage ist ....
Am Verständnis ich etwas falsch in meinem obigen Aussagen?
Wenn UDP nicht möglich ist, verwenden diese Chat-Anwendungen TCP Stream für Sprache?
Da ich erlebt habe, dass TCP-Voice-Streams Verzögerung erzeugen, Keine Sprachunterbrechung aber Verzögerung in der Stimme, also was sollte die beste Struktur für eine Voice-Chat-Server/Client-Kommunikation sein?
Bisher denke ich, dass, wenn der Kunde die Pakete an Clients verteilen Daten als UDP-Pakete an den Server und Server senden über TCP-Streams, ist dies eine richtige Lösung? Ich meine, ist das, was kommerzielle Voice-Chat-Anwendungen tun?
Vielen Dank Ihre Antwort wird mir und vielen anderen Programmierern helfen.
JF
Hallo Danke für die Antwort. Aber meine Frage bleibt unbeantwortet. In UDP gibt es keine Keep-Alive-Funktion. Deshalb möchte ich wissen, dass UDP in einer gängigen Voice-Chat-Client/Server-Anwendung nicht möglich ist? Dann, wie funktioniert das Yahoo, Paltalk, Inspek alle diese VoiceChat-Anwendungen? Tun sie dasselbe, was ich verstehe und erwähnte, dass der Client Daten über UDP sendet und Server über TCP-Streams an Clients liefert? – James
ok du erwähnt skype auch fallback zu tcp (wie yahoo). Weißt du, ob skype und yahoo tcp für die Kommunikation zwischen Client und Server verwenden?Oder verwenden sie UDP für Client - Server und TCP für Server - Client? Da gibt es n Problem in der Client-Server-UDP-Kommunikation auf jeden Fall – James
ok Vielen Dank, ich werde mehr über Nat keep-alive, noch einmal für die Hinweise lesen – James