Schrift
[thread]5757[/thread]

FIFOS: Immer nur einer ?



<< >> 5 Einträge, 1 Seite
BrownWolf
 2003-09-25 00:56
#56057 #56057
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Hi,

ich versuche gerade wieder einen kleinen Chat zu schreiben.
Diesmal wollte ich es mit FIFOS (Pipes) versuchen.

Soviel habe ich im Internet dazu nicht gefunden.
Also ich erzähle mal wie ich vorgeh.

Jedesmal wenn jemand etwas postet dann öffnet er eine Pipe mit:

Code (perl): (dl )
1
2
use POSIX qw(mkfifo);
mkfifo("./Verz/xxx.pipe", 0666);


Und im Messages Fenster liest er "Verz" aus mit opendir.
Wenn er eine Pipe findet öffnet er Sie und gibt den Text aus.
Was mir aufgefallen ist: Der Text kommt nur bei einem Client an ... wenn mehrere verbunden sind dann klappts nicht.

Woran liegt das ? Kann man eine Pipe immer nur einmal lesen ?
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
format_c
 2003-09-25 01:08
#56058 #56058
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wird da vielleicht implizit ein flock durchgeführt?

Gruß Alex
BrownWolf
 2003-09-25 01:28
#56059 #56059
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Wie meinst du das jetzt ?
Also ich kenne mich kaum mit FIFOS aus ....
Was ist anders als bei Textdateien ?

Und wie muss ich vorgehen ....
Soll ich für jeden Benutzer ne Pipe anlegen ...
Und dann schreibt das script den text in die Pipe vom Benutzer.

Alle anderen Clienten lesen aus ......
Aber dann hab ich das Problem das wieder nur einer lesen kann.

Oder soll ich beim Text abschicken alle Pipes von den Usern öffnen und den Text an alle verteilen ?

Und dann beim Lesen nur die eigene Userdatei.

Bitte helft mir ich schnall das nicht :(
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
format_c
 2003-09-25 02:19
#56060 #56060
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich kenne mich auch nicht aus. Dachte halt nur, dass in der Doku vielleicht was darüber stehen könnte und man es mit einer Option irgendwie abschalten könnte.
Komme halt drauf, weil das stark nach flock aussieht.

Gruß Alex
Dubu
 2003-09-25 17:55
#56061 #56061
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Wenn ein Prozess aus einer Named Pipe liest, dann werden die gelesenen Daten aus der Named Pipe entfernt - wie bei einer normalen Pipe auch.
<< >> 5 Einträge, 1 Seite



View all threads created 2003-09-25 00:56.