node24






Klucze IPC






















Next: Polecenie ipcs
Up: Podstawy
Previous: Identyfikatory IPC
  Contents





Klucze IPC



Aby otrzymać unikalne ID musimy posłużyć się kluczem. Klucz musi
zostać uzgodniony przez procesy klienta i serwera. Jest to pierwszy krok przy
tworzeniu aplikacji klient/serwer.


Kiedy używasz telefonu: aby dodzwonić się do kogoś musisz znać jego numer.
Dodatkowo, operator telefoniczny musi wiedzieć w jaki sposób połączyć ciebie.
Kiedy ta osoba odbiera tworzone jest połączenie.


W wypadku IPC Systemu V 'telefon' odpowiada bezpośrednio typowi używanego obiektu.
'Operator telefoniczny', lub metoda połączenia może być przyporządkowana kluczowi IPC.


Klucz może być za każdym razem ten sam, zakodowany w aplikacji. Jednak ma to swoją
wadę - istnieje możliwość, iż jest on już używany. Często korzysta się z funkcji
ftok() w celu utworzenia wartości klucza, który ma być użyty przez klienta i serwer.



FUNKCJA Z BIBLIOTEKI: ftok();

PROTOTYP: key_t ftok ( char *ścieżka, char proj );
ZWRACA: nową wartość klucza IPC jeżeli sukces
-1 - błąd, wartość errno odpowiada wywołaniu stat()


Zwracaną wartością jest klucz utworzony na podstawie kombinacji numeru i-węzła
i podrzędnego numeru urządzenia z pliku podanego w pierwszym argumencie wraz z
identyfikatorem projektu podanym jako drugi argument. To nie gwarantuje
unikalności, jednak aplikacja może sprawdzić czy nie zachodzi kolizja i powtórzyć
generację klucza.



key_t mójklucz;
mójklucz = ftok("/tmp/mojaapp", 'a');


W powyższym przykładzie klucz tworzony jest z kombinacji katalogu /tmp/mojaapp
z literą 'a'. Inną możliwością jest użycie bierzącego katalogu:



key_t mójklucz;
mykey = ftok(".", 'a');


Algorytm generacji klucza jest całkowicie zależny od programisty. Do póty, do póki
nie dopuszcza się do przypadku wyścigu, powieszenia (deadlocks) procesu każda metoda
jest dobra. W celu demonstracyjnym używamy ftok() zakładamy, że każdy klient
posiada unikalny katalog 'domowy', a to powinno dać nam wystarczające klucze.


Choć wartość klucza jest odbierana, używana jest w póżniejszych wywołaniach systemowych
w celu tworzenia lub dostępu do obiektów IPC.













Next: Polecenie ipcs
Up: Podstawy
Previous: Identyfikatory IPC
  Contents



2000-03-01








Wyszukiwarka

Podobne podstrony:
node245 T2YQJZD6LDQ6LP5OYUC3OHQJMT5QYEUMQNSNPTI
node245
node243
node242 7L22GLKYOY7WCD2ENRGH2MBHLMAUTJL2GTKKYNY
node246 YIF4WCYAY6SJS2OLKTPEMD6TGPZD4BLGOW43G3A
node24 PDHWHKXXAJCE53SGAZZQAGL4RLNJ7ZXWLGOY4QY
node24
node24 3ZDS5WHDJGYZQJTUOOHV6YJOOXTC2GUWSJC775I
node244
node243 YS2T6SICTFF6CFMWRO7X5VPFRR7EJ4VCN3TKXFY
node24 2PNVCNM2PFRUZA3ENONWT4NSN4DPLHTMPZ3FH7Y
node241
node244 D3H4Q5QNKWCUAFHHJWADTRR7OS7G5JGYHSPAIMQ
node249 7JYBNHKY3DEZ42ROO3VGHKZUJVB2IRUD4MHHCUY
node247
node24 1
node248 C33U2NRXWJ5BBSGXFIODC6MPK44O246Y7WN2G7Y

więcej podobnych podstron