Gibt es zunächst ein Problem bei der Verwendung von UDP und TCP auf demselben Server?
Zweitens kann ich dieselbe Portnummer verwenden?
Gibt es zunächst ein Problem bei der Verwendung von UDP und TCP auf demselben Server?
Zweitens kann ich dieselbe Portnummer verwenden?
Antworten:
Ja, Sie können für TCP und UDP dieselbe Portnummer verwenden. Viele Protokolle tun dies bereits, zum Beispiel funktioniert DNS unter udp / 53 und tcp / 53.
Technisch sind die Port - Pools für jedes Protokoll völlig unabhängig, aber für höhere Protokolle , die TCP oder UDP es die Konvention verwenden können , dass sie auf die gleichen Port Standardnummer .
Beachten Sie beim Schreiben Ihres Servers, dass die Reihenfolge der Ereignisse für einen TCP-Socket viel schwieriger ist als für einen UDP-Socket, da Sie neben den normalen socket
und bind
Aufrufen auch listen
und müssen accept
.
Darüber hinaus gibt dieser accept
Anruf einen neuen Socket zurück und es ist dieser Socket, den Sie dann auch nach Empfangsereignissen abfragen müssen. Ihr Server sollte darauf vorbereitet sein, weiterhin accept
Verbindungen auf dem ursprünglichen Socket herzustellen und gleichzeitig mehrere Clients zu bedienen, von denen jeder Empfangsereignisse auf seinen eigenen Sockets auslöst.
Erstens gibt es kein Problem bei der Verwendung von tcp und udp auf dem Server.
Zweitens können wir sowohl UDP- als auch TCP-Anforderungen an demselben Port haben, da jede Anforderung durch ein Fünffach identifiziert wird, das in Quell-IP, Ziel-IP, Quell-Port, Ziel-Port, PROTOKOLL enthalten ist (als Protokoll kann TCP oder UDP sein).