Kontakt: marcin.kolodziej1@globallogic.com lub dev@izoslav.pl
Prezentacja: WIZUT_KMIM_M2_M4.pdf
-
Rozwiązania natywne dla Linuxa (POSIX)
- Potoki (ang. pipes)
- Kolejki (ang. queues)
- Pamięć współdzielona (ang. shared memory)
- Gniazda (agn. sockets)
-
Biblioteka boost
- boost::interprocess
- boost::process
-
Valgrind
- Helgrind
- DRD
- Zaimplementować prosty "czat" międzyprocesowy.
- Klient - łączy się wybranym sposobem z serwerem, przesyła mu wiadomości zawierające następujące dane:
- Czas nadania wiadomości.
- Identyfikator nadawcy.
- Wiadomość.
- Serwer - przyjmuje połączenia, wypisuje następujące informacje na standardowe wyjście albo do pliku:
- Wypisuje następujące informacje na standardowe wyjście albo do pliku:
- Czas nadania wiadomości.
- Czas odebrania wiadomości.
- Identyfikator nadawcy.
- Wiadomość.
- Wysyła potwierdzenie odebrania wiadomości do klienta.
- Rozsyła otrzymane wiadomości do połączonych klientów. (* nadobowiązkowe)
- Wypisuje następujące informacje na standardowe wyjście albo do pliku:
- Klient - łączy się wybranym sposobem z serwerem, przesyła mu wiadomości zawierające następujące dane:
- Zestawić połączenie dwukierunkowe między procesami przy użyciu potoków.
- Użyć mechanizmu pamięci współdzielonej do synchronizacji ustawień (struktury z jakimiś danymi) między wieloma procesami.
- Napisać program serwera oraz klienta, który pozwoli na komunikację między dwoma klientami poprzez serwer przy pomocy kolejki wiadomości.
- Zaimplementować echo serwer przy pomocy gniazd TCP.
- Pojawią się bliżej 27.05
-
http://www.boost.org/doc/libs/1_64_0/doc/html/interprocess.html
-
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2044.html
- Biblioteka
boost::process
jest dostępna dopiero od wersji1.64
, niedostępnej na uczelnianych maszynach wirtualnych.