🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
4 messages
4 total messages Started by Daniel Mróz Wed, 29 Sep 1999 15:43
Jak dziala FIFO?
#711
Author: Daniel Mróz
Date: Wed, 29 Sep 1999 15:43
34 lines
2462 bytes
Czesc

   Pytanie  pewne  banalne,  ale  nie  wiem  gdzie  szukac odpowiedzi.
Napisalem sobie dwa programy: serwer i klient. Serwer po  uruchomieniu
tworzy dwie kolejki FIFO: jedna do odczytu (przyjmowanie komend), dru-
ga do zapisu (odpowiadanie na komendy). Klient po uruchomieniu otwiera
te  kolejki  i poprzez nie wysyla do serwera to, co wpisze uzytkownik.
Serwer jest glupi, tzn.  nie  robi  nic  oprocz  `odbijania'  tego  co
dostanie, czyli klient wysylajac ciag `BLAH' otrzyma spowrotem `BLAH'.
Proste.
   Kiedy odpale jeden serwer oraz kilka klientow to wszystkie  korzys-
taja  z  tych  samych  dwoch plikow FIFO. Jednak, kiedy z klienta nr 1
wysle wiadomosc, to serwer ja odbije do  klienta  nr  1,  a  pozostali
klienci  nie  dostana nic. Tak samo jesli wysle wiadomosc z klienta nr
4, to serwer ja odbije tylko do niego. Moje pytanie brzmi: skad serwer
wie, do ktorego klienta ma odbic wiadomosc? Wszystkie programy korzys-
taja z tych samych plikow, wiec to co serwer zapisze  w  FIFO  powinno
byc  odebrane przez wszystkich klientow. Wiadomosci nie zawieraja zad-
nych dodatkowych informacji. Podejrzewam, ze odpowiada za  to  kernel,
ale jak to jest mozliwe?

P.S.  Jesli pytanie zbyt glupie to przepraszam, ale mnie tego w szkole
nie ucza :(

Pozdrawiam
Beorn

-- 
----------------------------------------------------------------------
Daniel `Beorn' Mróz                             http://127.0.0.1/beorn
beorn@alpha.pl
psi2863@orca.mila.edu.pl
----------------------------------ooo^..^ooo--------------------------
Re: Jak dziala FIFO?
#712
Author: Logout
Date: Thu, 30 Sep 1999 07:26
5 lines
1059 bytes
A czy z FIFO nie jest tak, ze cos mozna odczytac tylko raz ?
Nastepny klient podlaczony do tego samego fifo juz nie zauwazy,
bo z fifo sie "zabiera" czy  "zdejmuje". Moze sie myle, ale tak mi sie
wydaje.
g
Re: Jak dziala FIFO?
#713
Author: Cezary H. Noweta
Date: Thu, 30 Sep 1999 11:58
24 lines
1920 bytes
Witam,

"Daniel Mróz" wrote:
> [...] Jednak, kiedy z klienta nr 1
> wysle wiadomosc, to serwer ja odbije do  klienta  nr  1,  a  pozostali
> klienci  nie  dostana nic. Tak samo jesli wysle wiadomosc z klienta nr
> 4, to serwer ja odbije tylko do niego. Moje pytanie brzmi: skad serwer
> wie, do ktorego klienta ma odbic wiadomosc? Wszystkie programy korzys-
> taja z tych samych plikow, wiec to co serwer zapisze  w  FIFO  powinno
> byc  odebrane przez wszystkich klientow. [...]

To co zapisze ktos jest odbierane tylko przez jednego ktosia (pierwszego,
ktory czyta). Podejrzewam, ze klient wysyla tak:
  write("BLAHBLAH",...);
  read(...);
podczas, gdy inni klienci robia cos innego. Klient zapisuje i natychmiast
czyta, podczas gdy inni nie czytaja. Po przeczytaniu dane znikaja.

  -- pozdrawiam

-- 
Cezary H. Noweta                 90-237 LODZ, ul. J.Matejki 34/38 POLAND
(chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl)    +48 42 6356013, 6356012
University of Lodz - Main Library                            fax 6781678
Re: Jak dziala FIFO?
#714
Author: Daniel Mróz
Date: Thu, 30 Sep 1999 16:07
27 lines
2281 bytes
On Thu, 30 Sep 1999 13:58:58 +0200, Cezary H. Noweta <chn@irys.usundrugiczlon.uni.lodz.pl> wrote:
>> [...] Jednak, kiedy z klienta nr 1
>> wysle wiadomosc, to serwer ja odbije do  klienta  nr  1,  a  pozostali
>> klienci  nie  dostana nic. Tak samo jesli wysle wiadomosc z klienta nr
>> 4, to serwer ja odbije tylko do niego. Moje pytanie brzmi: skad serwer
>> wie, do ktorego klienta ma odbic wiadomosc? Wszystkie programy korzys-
>> taja z tych samych plikow, wiec to co serwer zapisze  w  FIFO  powinno
>> byc  odebrane przez wszystkich klientow. [...]
> To co zapisze ktos jest odbierane tylko przez jednego ktosia (pierwszego,
> ktory czyta). Podejrzewam, ze klient wysyla tak:
>   write("BLAHBLAH",...);
>   read(...);
> podczas, gdy inni klienci robia cos innego. Klient zapisuje i natychmiast
> czyta, podczas gdy inni nie czytaja. Po przeczytaniu dane znikaja.
Rozumiem. Teraz wyforkowalem podproces, ktory tylko czyta i zwrot
dostaje tylko jeden z trzech klientow (pomimo, ze wszystkie wciaz
nasluchuja). Czyli wszystko w porzadku. Dzieki.

Pozdrawiam
Beorn

-- 
----------------------------------------------------------------------
Daniel `Beorn' Mróz                             http://127.0.0.1/beorn
beorn@alpha.pl
psi2863@orca.mila.edu.pl
----------------------------------ooo^..^ooo--------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads