Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
pipe vs. socket

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Netzwerk
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
lotte
Gast





BeitragVerfasst am: 19. Jun 2003 9:33   Titel: pipe vs. socket

Hallo,

ist jemand in der Lage, mir den Unterschied zwischen einer (named) pipe und einem socket zu erklären. Auf nicht programmiertechnischer Ebene ?
 

Andreas B.
Gast





BeitragVerfasst am: 20. Jun 2003 14:47   Titel: Re: pipe vs. socket

ok, aber ob`s Dir hilft.

eine "pipe" ist
- halfdupplex
- Kommunikation nur fuer verwandte Prozessen moeglich z.B. Eltern/Kind
- zum Pipehandling wird popen()/pclose()/pipe() eingesetzt
mit fork() initiert man einen Kindprozess

eine named-"pipe" / Fifo ist
- halfdupplex
- ein eigener Dateityp
- es werden open()/read()/write()/unlink()/close() zur Behandlung benutzt,
somit die elementaren Dateioperationen

ein "Berkley"-Socket ist
- FullDupplex
- Abstraktion des Netzwerkverkehrs/Prinzieps auf Dateiebene
- von mehreren Prozessen gleichzeitig nutzbar, es kann Client- und Serverprozesse geben
Kommunikation kann als Verbindung ablaufen, oder via DataGrammen
(verbinde es analog mit dem Wort TeleGramm),
- Server koennen ankommende Daten "iterativ/fortschreitend" behandeln, d.h.
sie nehmen einen Auftrag an, arbeiten Ihn ab und senden die Ergebnisse, bevor der naechste
Auftrag abgearbeitet wird.
- Sie koennen aber auch konkurrierend arbeiten, d.h. fuer jeden einkommenden aktzeptierten
Auftrag erzeugt der Prozess von sich selbst eine Kopie und fuehrt diese als Kindprozess aus,
- Prozesse werden ueber Ihre Namen addressiert, d.h. nicht ueber Deskriptoren, diese Namen
muessen einen Hostnamen enthalten, z.B. der "localhost"

-- zu DataGrammen und Verbindungen,
iterative Server werden DataGramm orientierte Verbindungen bevorzugen
(kurz gesagt der Programmierer)
konkurrierende Server setzen meistens verbindungsorientierte Protokolle ein

z.B. eine Halflife/CS | Quake X -- Client/Serververbindung wird via UDP abgewickelt,
die meisten Spiele setzen auf Grund, moeglicher Packetverluste auf das UDP,
eine ssl Verbindung z.B. ist auf Grund Ihres Characters, fuer jedes Packet eine
"sicher angekommen" oder "versumpft" Bestaetigung (der Erhalt wird quitiert)
tcp- ist Volldupplex

-- Zur Kommunkation von zwei Prozessen muessen also 5 Paramter angegeben werden,
a. erforderliches Protokoll
b. der eigene Hostname
c. der eigene Prozessname
d. der Hostname des Partners
e. der Name des Partners
auch bei lokalen Verbindungen


hoffe das war nicht zu programmiertechnisch Very Happy
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Netzwerk Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy