2012-03-31 16 views
1

In TCP können Sie zwischen Servern und Clients unterscheiden, da Server diejenigen sind, die binden und akzeptieren (TCP-Listener) und Clients nur eine Verbindung zu diesen Servern herstellen. Beide können senden und empfangen.Wer ist der Server und wer ist der Client in UDP?

Aber wie unterscheiden Sie in UDP zwischen Servern und Clients? Es gibt kein spezielles Verhalten, um zwischen Servern oder Clients in UDP zu unterscheiden, oder? Es scheint, dass wir Maschinen, die an einer UDP-Verbindung beteiligt sind, nur als Absender und Empfänger klassifizieren können. Ein Server könnte beides oder beides sein. Er kann Daten von vielen Clients empfangen oder Daten an viele Clients (z. B. Multicast-Server) senden.

Bitte korrigieren Sie mich, wenn ich falsch liege und verweisen Sie mich auf das richtige Forum, wenn ich die Frage in der falschen posted.

Danke.

Antwort

0

Es gibt keinen Server oder einen Client mit UDP. Es gibt nur Peers.

+0

Das ist nicht wahr von UDP nicht mehr als es von TCP ist. –

+0

@RussellBorogove Da ich nicht gesagt habe, dass es für TCP wahr ist, und da es * wahr von UDP ist, ist Ihr Kommentar zu 100% falsch. Die Sache, die TCP zu einem Client/Server-Protokoll macht, ist der Socket im LISTENING-Zustand, der Verbindungen akzeptiert. Diese Struktur existiert nicht in UDP. – EJP

+0

DNS, TFTP und viele Spiele haben Protokolle auf UDP, die eindeutig Client-Server sind. Soweit Ihre Antwort richtig ist, ist es irrelevant. Wenn ein Host recv() an einem UDP-Socket aufruft, der an einen bekannten Port gebunden ist, fungiert er als Server. –

0

Kein Experte mit Vernetzung, aber das ist mein Verständnis.

TCP und UDP sind Netzwerkprotokolle, die sich mit der Art und Weise befassen, wie Daten zwischen Knoten übertragen werden. Wenn Sie die Paketstruktur für TCP und UDP betrachten, werden Sie feststellen, dass beide über einen Quellenknotenabschnitt und einen Zielknotenabschnitt verfügen. Darüber hinaus wird eine physische Maschine als Informationsquelle auch in UDP weiterhin existieren. Ob Sie es Server oder nur einen Client nennen, ist eine Entscheidung, die die Architektur des Systems entscheiden soll.

Also ich denke, Sie beziehen sich auf eine Ebene über die Übertragung von Daten, d. H. In meinem Verständnis eine Architektur der Netzwerkanwendung. Das ist, wenn wir über Client-Server-Anwendungen sprechen, und P2P-Art einer Architektur, wo mehrere physische Maschinen Daten bereitstellen können. Die Terminologie hängt also davon ab, auf welchen Kontext Sie sich beziehen.

Um Ihre Frage zu beantworten, kann ein Server und ein Client in TCP und UDP existieren. Lassen Sie die Architekten entscheiden!

Hoffe es hilft!

+0

keine Antwort, oder? – EJP

+0

Bis zu der Community oder der Autor dieser Frage zu entscheiden :) – ajmartin

Verwandte Themen