Rejestracja i odwzorowanie nazw

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Rejestracja i odwzorowanie nazw"

Transkrypt

1 Rozdzia³ 10 Rejestracja i odwzorowanie nazw W tym rozdziale omawiamy niezale ny od protoko³u model rejestracji i odwzorowania nazw, wprowadzony po raz pierwszy w bibliotece Winsock 2. Metoda znana z Winsock 1 jest obecnie uznawana za przestarza³¹, dlatego nie bêdzie tutaj omawiana. Najpierw przedstawimy wstêpne informacje na temat znaczenia i zastosowañ mechanizmów rejestracji i odwzorowania nazw. Nastêpnie przejdziemy do omówienia dostêpnych modeli rejestracji. W dalszej kolejnoœci opiszemy funkcje Winsock 2 umo liwiaj¹ce odwzorowywanie nazw. Omówimy tak e rejestracjê w³asnej us³ugi, tak aby by³a ona dostêpna dla innych procesów. Informacje wstêpne Rejestracja nazw to proces polegaj¹cy na kojarzeniu czytelnych nazw (identyfikatorów) z adresami zapisanymi w postaci charakterystycznej dla u ywanego protoko³u. Za przyk³ad mo e tutaj pos³u yæ odwzorowanie nazw hostów na adresy IP. Koniecznoœæ zapamiêtywania adresów stacji roboczych (na przyk³ad ) by³aby bardzo uci¹ liwa. Wiêkszoœæ u ytkowników woli nadawaæ swoim komputerom bardziej zrozumia³e nazwy, na przyk³ad kowalski1. W przypadku protoko³u IP, za kojarzenie adresów IP z nazwami odpowiada us³uga Domain Name System (DNS, system nazewnictwa domen). Inne protoko³y tak e umo liwiaj¹ przypisywanie adresom czytelnych nazw. Przestrzenie nazw omówimy bardziej szczegó³owo w nastêpnym podrozdziale. Oprócz rejestrowania i odwzorowywania nazw hostów, przydatna jest tak e mo liwoœæ dynamicznego odczytywania adresu serwera Winsock przez klientów, którzy chc¹ siê z nim po³¹czyæ. Za³ó my, e serwer dzia³a na komputerze w porcie Jeœli jest to jedyna maszyna, na której dzia³a serwer, mo na na sta³e wpisaæ adres w aplikacji klienckiej. Co jednak pocz¹æ, jeœli serwer musi mieæ charakter bardziej dynamiczny i dzia³aæ na kilku komputerach, jak to bywa w przypadku aplikacji rozproszonych, odpornych na awarie? Jeœli jeden z serwerów przestanie dzia³aæ lub bêdzie przeci¹ ony, powinna istnieæ mo liwoœæ uruchomienia innego serwera, który obs³u y klientów. W takim przypadku odszukanie w sieci dzia³aj¹cych serwerów mo e byæ bardzo k³opotliwe. Idealnym rozwi¹zaniem by³oby skojarzenie nazwy serwera, na przyk³ad Serwer rozproszony odporny na awarie, z kilkoma adresami. Ponadto przydatna bywa mo liwoœæ dynamicznej aktualizacji zarejestrowanej us³ugi (serwera) i jej adresów.

2 300 Czêœæ II: Winsock API W³aœnie tego rodzaju mechanizmy s¹ istot¹ rejestracji i odwzorowania nazw. W tym rozdziale omówimy narzêdzia biblioteki Winsock, zapewniaj¹ce dynamiczn¹ rejestracjê rozproszonych us³ug i odwzorowanie nazw. Modele przestrzeni nazw Zanim przejdziemy do omówienia konkretnych funkcji interfejsu Winsock, musimy przedstawiæ ró ne modele przestrzeni nazw, u ywane w wiêkszoœci protoko³ów. Przestrzeñ nazw umo liwia skojarzenie protoko³u i charakterystycznych dla niego parametrów adresowych z czytelnymi nazwami (identyfikatorami). Do najczêœciej stosowanych przestrzeni nazw nale ¹: DNS dla protoko³u IP oraz Netware Directory Services (NDS) firmy Novell dla protoko³u IPX. Przestrzenie te znacznie ró ni¹ siê miêdzy sob¹ pod wzglêdem organizacji i implementacji. Niektóre w³aœciwoœci przestrzeni nazw maj¹ szczególnie znaczenie przy rejestracji i odwzorowywaniu nazw za pomoc¹ funkcji interfejsu Winsock. Wyró nia siê trzy typy przestrzeni nazw: dynamiczne, statyczne i trwa³e. Dynamiczna przestrzeñ nazw umo liwia rejestrowanie us³ug na bie ¹co, czyli zgodnie z nazw¹ dynamicznie. Oznacza to, e klienty mog¹ wyszukiwaæ us³ugê podczas pracy. Zwykle dynamiczna przestrzeñ nazw funkcjonuje w oparciu o mechanizm okresowego rozg³aszania informacji o us³udze. W ten sposób do klientów docieraj¹ informacje o sta³ej dostêpnoœci us³ugi. Jako przyk³ady tego rodzaju przestrzeni nazw mo na wskazaæ Service Advertising Protocol (SAP), stosowany w œrodowisku NetWare, oraz Name Binding Protocol (NBP), u ywany w sieciach AppleTalk. Statyczne przestrzenie nazw s¹ najmniej elastyczne spoœród trzech wymienionych typów. Wymagaj¹ rêcznej rejestracji us³ugi przed pierwszym u yciem. Oznacza to, e nie jest mo liwe zarejestrowanie us³ugi w statycznej przestrzeni nazw z poziomu interfejsu Winsock dostêpne s¹ wy³¹cznie funkcje odwzorowuj¹ce nazwy. Przyk³adem statycznej przestrzeni nazw jest system DNS. W przypadku DNS trzeba rêcznie wprowadzaæ adresy IP i nazwy hostów do pliku, którego us³uga DNS u ywa przy realizacji ¹dañ odwzorowania nazw. Trwa³e (ang. persistent) przestrzenie nazw, podobnie jak dynamiczne, umo liwiaj¹ rejestrowanie us³ug na bie ¹co. Jednak w przeciwieñstwie do dynamicznych przestrzeni nazw, w modelu przestrzeni trwa³ych informacje o zarejestrowanych us³ugach przechowywane s¹ w pamiêci nieulotnej, na przyk³ad w pliku dyskowym. Us³uga jest usuwana z rejestru wy³¹cznie na w³asne ¹danie. Trwa³e przestrzenie nazw s¹ elastyczne, a jednoczeœnie nie obci¹ aj¹ sieci rozg³aszanymi informacjami o dostêpnoœci us³ugi. Wady tego rozwi¹zania ujawniaj¹ siê w przypadku Ÿle napisanych serwerów, które mog¹ nagle znikn¹æ, nie poinformowawszy systemu obs³uguj¹cego przestrzeñ nazw o koniecznoœci usuniêcia zapisu z rejestru. W takiej sytuacji klienty bêd¹ dzia³aæ tak, jak gdyby us³uga by³a dalej dostêpna. Przyk³adem trwa³ej przestrzeni nazw jest NDS. Wyliczanie przestrzeni nazw Po omówieniu najwa niejszych w³asnoœci przestrzeni nazw pora przejœæ do procedury wyszukiwania przestrzeni dostêpnych w systemie. Wiêkszoœæ predefiniowanych przestrzeni nazw zosta³a zadeklarowana w pliku nag³ówkowym Nspapi.h. Ka dej przestrzeni nazw przypisano wartoœæ ca³kowit¹. W tabeli 10-1

3 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 301 zebrano niektóre najczêœciej obs³ugiwane przestrzenie nazw, dostêpne na platformie Win32. Zawartoœæ zwróconej listy przestrzeni nazw zale y od tego, jakie protoko³y s¹ zainstalowane na danej stacji roboczej. Na przyk³ad przestrzeñ nazw NS_SAP nie znajdzie siê na liœcie, jeœli na stacji roboczej nie jest zainstalowany protokó³ IPX/SPX. Tabela Obs³ugiwane przestrzenie nazw Przestrzeñ nazw Wartoœæ Opis NS_SAP 1 Przestrzeñ nazw SAP, u ywana w sieciach IPX. NS_NDS 2 Przestrzeñ nazw NDS, tak e u ywana w sieciach IPX. NS_DNS 11 Przestrzeñ nazw DNS, powszechnie stosowana w sieciach TCP/IP i w Internecie. ND_NTDS 32 Przestrzeñ domen Windows NT. Niezale na od protoko³u przestrzeñ nazw, stosowana w Windows Bezpoœrednio po zainstalowaniu protoko³u IPX/SPX na komputerze, przestrzeñ nazw SAP jest dostêpna wy³¹cznie jako Ÿród³o informacji o nazwach. Aby zarejestrowaæ w³asn¹ us³ugê, nale y dodatkowo zainstalowaæ us³ugê SAP Agent. W niektórych przypadkach do prawid³owego wyœwietlania lokalnych adresów interfejsu IPX niezbêdny jest tak e pakiet us³ug klienckich NetWare. Bez tego pakietu zamiast lokalnych adresów bêd¹ zwracane ci¹gi zer. Ponadto, aby móc skorzystaæ z przestrzeni nazw NDS, nale y zainstalowaæ oprogramowanie klienta NDS. Wszystkie wymienione protoko³y i us³ugi mo na zainstalowaæ z Panelu sterowania. Winsock 2 oferuje metodê programowego odczytu listy przestrzeni nazw, które s¹ aktualnie dostêpne w systemie. S³u y do tego funkcja WSAEnumName- SpaceProviders, zadeklarowana w nastêpuj¹cy sposób: INT WSAEnumNameSpaceProviders ( LPDWORD lpdwbufferlength, LPWSANAMESPACE_INFO lpnspbuffer ); Pierwszy parametr to rozmiar bufora lpnspbuffer, który jest odpowiedniej wielkoœci tablic¹ struktur WSANAMESPACE_INFO. Jeœli podany rozmiar bufora jest zbyt ma³y, to wywo³anie koñczy siê niepowodzeniem, a funkcja wpisuje do lpdwbufferlength wymagany minimalny rozmiar. W takim przypadku nastêpne wywo³anie funkcji WSAGetLastError zwróci wartoœæ WSAEFAULT. Funkcja zwraca liczbê struktur WSANAMESPACE_INFO umieszczonych w tablicy, a w przypadku wyst¹pienia jakiegokolwiek b³êdu wartoœæ SOCKET_ERROR. Struktura WSANAMESPACE_INFO opisuje pojedyncz¹ przestrzeñ nazw zainstalowan¹ w systemie. Oto definicja tej struktury: typedef struct _WSANAMESPACE_INFO { GUID NSProviderId; DWORD dwnamespace; BOOL factive DWORD dwversion; LPTSTR lpszidentifier; } WSANAMESPACE_INFO, *PWSANAMESPACE_INFO, LPWSANAMESPACE_INFO;

4 302 Czêœæ II: Winsock API Istniej¹ w zasadzie dwie definicje tej struktury jedna dla standardu UNICODE, a druga dla ANSI. Z pliku nag³ówkowego Winsock 2 wybierana jest odpowiednia definicja typedef struktury WSANAMESPACE_INFO, w zale noœci od sposobu, w jaki budowany jest projekt. W rzeczywistoœci wszystkie struktury oraz funkcje interfejsu Winsock2, s³u ¹ce do rejestracji i odwzorowania nazw, maj¹ po dwie wersje: ANSI oraz UNICODE. Pierwszy element struktury, NSProviderId, to globalnie unikalny identyfikator (GUID), opisuj¹cy dan¹ przestrzeñ nazw. Pole dwnamespace to sta³a ca³kowita przypisana do nazwy przestrzeni nazw, na przyk³ad NS_DNS albo NS_SAP. Element factive to wartoœæ logiczna. Wartoœæ TRUE oznacza, e przestrzeñ nazw jest dostêpna i e mo na do niej kierowaæ zapytania. Z kolei wartoœæ FALSE oznacza, e serwer przestrzeni nazw jest nieaktywny i nie mo ne obs³ugiwaæ zapytañ, które odnosz¹ siê bezpoœrednio do niego. Pole dwversion identyfikuje wersjê serwera przestrzeni nazw. Wreszcie lpszidentifier to ci¹g zawieraj¹cy opisowy identyfikator przestrzeni nazw. Rejestracja us³ugi Nastêpnym etapem bêdzie przygotowanie w³asnej us³ugi, udostêpnienie jej i powiadomienie o niej innych komputerów dzia³aj¹cych w sieci. Proces ten jest znany jako rejestracja us³ugi w serwerze przestrzeni nazw. Klienty mog¹ uzyskaæ informacje o zarejestrowanych us³ugach i wysy³aæ do nich zapytania. Rejestracja us³ugi przebiega dwuetapowo. Pierwszy etap to instalacja klasy us³ugi, która opisuje w³asnoœci nowej us³ugi. Nale y podkreœliæ ró nicê miêdzy klas¹ us³ugi a sam¹ us³ug¹. Klasa us³ugi mo e na przyk³ad zawieraæ listê przestrzeni nazw, w których us³uga powinna byæ zarejestrowana, a tak e opis niektórych jej w³aœciwoœci, na przyk³ad informacjê o tym, czy us³uga jest po³¹czeniowa, czy bezpo³¹czeniowa. Klasa nie zawiera natomiast adnych informacji o sposobie nawi¹zania po³¹czenia miêdzy klientem a us³ug¹. Po zarejestrowaniu klasy mo na zarejestrowaæ w³aœciwy egzemplarz us³ugi, zawieraj¹cy odnoœnik do wczeœniej zarejestrowanej klasy. Od tej chwili klienty mog¹ uzyskaæ informacje o tym, czy egzemplarz us³ugi jest aktywny i podejmowaæ próby skomunikowania siê z us³ug¹. Instalowanie klasy us³ugi Przed zarejestrowaniem egzemplarza us³ugi nale y zdefiniowaæ klasê, do której ta us³uga bêdzie nale eæ. Klasa us³ugi definiuje miêdzy innymi listê przestrzeni nazw, w których us³uga powinna byæ zarejestrowana. Do rejestracji us³ugi s³u y funkcja interfejsu Winsock WSAInstallServiceClass, zadeklarowana w nastêpuj¹cy sposób: INT WSAInstallServiceClass (LPWSASERVICECLASSINFO lpserviceclassinfo); Jedyny parametr lpserviceclassinfo to wskaÿnik do struktury WSASERVICE- CLASSINFO, w której zdefiniowane s¹ atrybuty danej klasy. Oto definicja tej struktury: typedef struct _WSAServiceClassInfo { LPGUID lpserviceclassid; LPTSTR lpszserviceclassname; DWORD dwcount;

5 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 303 LPWSANSCLASSINFO lpclassinfos; } WSASERVICECLASSINFO, *PWSASERVICECLASSINFO, LPWSASERVICECLASSINFO; Pierwsze pole to GUID, który jednoznacznie identyfikuje dan¹ klasê us³ugi. Istnieje kilka metod generowania identyfikatora GUID, który bêdzie siê nadawa³ do zastosowania przy definiowaniu klasy us³ugi. Pierwsza metoda polega na u yciu narzêdzia Uuidgen.exe. Wad¹ tego rozwi¹zania jest koniecznoœæ wpisania na sta³e wartoœci identyfikatora do pliku nag³ówkowego. Niedogodnoœæ ta nie wystêpuje w przypadku drugiej metody. W pliku nag³ówkowym Svcguid.h zdefiniowano kilka makr generuj¹cych GUID na podstawie pojedynczego parametru. Na przyk³ad, instaluj¹c klasê us³ugi dla przestrzeni SAP, która ma s³u yæ do publikowania informacji o aplikacji IPX, mo na skorzystaæ z makra SVCID- _NETWARE. Jedynym parametrem makra jest identyfikator SAP przypisany do rejestrowanej klasy aplikacji. W œrodowisku NetWare zdefiniowano szereg identyfikatorów SAP. Na przyk³ad 0x4 to identyfikator serwerów plików, a 0x7 serwerów wydruku. Aby skorzystaæ z tej metody generowania identyfikatora GUID, wystarczy zapamiêtaæ odpowiedni identyfikator SAP. Dostêpne s¹ tak e makra podaj¹ce GUID us³ugi na podstawie numeru portu. Warto przyjrzeæ siê plikowi Scvguid.h, który zawiera tak e inne u yteczne makra, realizuj¹ce operacjê odwrotn¹, to znaczy zwracaj¹ce numer portu us³ugi na podstawie jej identyfikatora GUID. W tabeli 10-2 wymieniono najczêœciej u ywana makra generuj¹ce identyfikatory GUID na podstawie prostych parametrów protoko³u, na przyk³ad numerów portów albo identyfikatorów SAP. Wspomniany plik nag³ówkowy zawiera tak e sta³e odpowiadaj¹ce numerom portów powszechnie u ywanych us³ug, takich jak FTP lub Telnet. Tabela Najczêœciej u ywane makra generuj¹ce identyfikatory us³ug Makro Opis SVCID_TCP(Port) Generuje GUID na podstawie numeru portu TCP. SVCID_DNS(RecordType) Generuje GUID na podstawie typu rekordu DNS. SVCID_UDP(Port) Generuje GUID na podstawie numeru portu UDP. SVCID_NETWARE(SapId) Generuje GUID na podstawie identyfikatora SAP. Drugie pole struktury WSASERVICECLASSINFO, lpszserviceclassname, to po prostu ci¹g z nazw¹ danej klasy us³ugi. Ostatnie dwa pola s¹ wzajemnie powi¹zane. Pole dwcount okreœla liczbê struktur WSANSCLASSINFO przekazywanych w polu lpclassinfos. W strukturach tych zdefiniowane s¹ przestrzenie nazw oraz w³aœciwoœci protoko³ów, obowi¹zuj¹ce dla konkretnych us³ug nale ¹cych do tej klasy. Oto definicja wspomnianej struktury: typedef struct _WSANSClassInfo { LPSTR lpszname; DWORD dwnamespace; DWORD dwvaluetype; DWORD dwvaluesize; LPVOID lpvalue; }WSANSCLASSINFO, *PWSANSCLASSINFO, *LPWSANSCLASSINFO; Zawartoœæ pola lpszname opisuje atrybuty klasy us³ug. W tabeli 10-3 wymieniono dostêpne atrybuty. Ka dy z nich ma wartoœæ typu REG_DWORD.

6 304 Czêœæ II: Winsock API Tabela Typy us³ug Ci¹g Nazwa sta³ej Przestrzeñ Opis nazw "SapId" SERVICE_TYPE_VALUE_SAPID NS_SAP SAP ID "Connection- SERVICE_TYPE_VALUE_CONN Dowolna Informacja o tym, Oriented" czy us³uga jest po³¹czeniowa, czy bezpo³¹czeniowa. "TcpPort" SERVICE_TYPE_VALUE_TCPPORT NS_DNS Port TCP NS_NTDS "UdpPort" SERVICE_TYPE_VALUE_UDPPORT NS_DNS Port UDP NS_NTDS Pole dwnamespace to przestrzeñ nazw, której dotyczy dany atrybut. W tabeli 10-3 wymieniono tak e przestrzenie nazw, do których stosowane s¹ zwykle poszczególne typy us³ug. Trzy ostatnie pola dwvaluetype, dwvaluesize i lpvalue okreœlaj¹ w³aœciw¹ wartoœæ skojarzon¹ z typem us³ugi. Pole dwvaluetype okreœla typ w³aœciwej wartoœci, a zatem mo e przyjmowaæ jedn¹ z wartoœci opisuj¹cych typy. Na przyk³ad, jeœli wartoœæ nale y do typu DWORD, to w polu dwvaluetype nale y wpisaæ REG_DWORD. Kolejne pole, dwvaluesize, okreœla rozmiar danych przekazywanych w polu lpvalue, a to pole z kolei jest wskaÿnikiem do w³aœciwych danych. Poni ej przedstawiono przyk³adowy fragment programu, ilustruj¹cy proces rejestracji klasy us³ugi o nazwie Testowa klasa serwera". WSASERVICECLASSINFO sci; WSANSCLASSINFO anamespaceclassinfo[4]; DWORD dwsapid = 200, dwudpport = 5150, dwzero = 0; int ret; memset(&sci, 0, sizeof(sci)); SET_NETWARE_SVCID(&sci.lpServiceClassId, dwsapid); sci.lpszserviceclassname = (LPSTR)"Testowa klasa serwera"; sci.dwcount = 4; sci.lpclassinfos = anamespaceclassinfo; memset(anamespaceclassinfo, 0, sizeof(wsansclassinfo) * 4); // Dane dla przestrzeni nazw NTDS anamespaceclassinfo[0].lpszname = SERVICE_TYPE_VALUE_CONN; anamespaceclassinfo[0].dwnamespace = NS_NTDS; anamespaceclassinfo[0].dwvaluetype = REG_DWORD; anamespaceclassinfo[0].dwvaluesize = sizeof(dword); anamespaceclassinfo[0].lpvalue = &dwzero; anamespaceclassinfo[1].lpszname = SERVICE_TYPE_VALUE_UDPPORT; anamespaceclassinfo[1].dwnamespace = NS_NTDS; anamespaceclassinfo[1].dwvaluetype = REG_DWORD; anamespaceclassinfo[1].dwvaluesize = sizeof(dword); anamespaceclassinfo[1].lpvalue = &dwudpport;

7 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 305 // Dane dla przestrzeni nazw SAP anamespaceclassinfo[2].lpszname = SERVICE_TYPE_VALUE_CONN; anamespaceclassinfo[2].dwnamespace = NS_SAP; anamespaceclassinfo[2].dwvaluetype = REG_DWORD; anamespaceclassinfo[2].dwvaluesize = sizeof(dword); anamespaceclassinfo[2].lpvalue = &dwzero; anamespaceclassinfo[3].lpszname = SERVICE_TYPE_VALUE_SAPID; anamespaceclassinfo[3].dwnamespace = NS_SAP; anamespaceclassinfo[3].dwvaluetype = REG_DWORD; anamespaceclassinfo[3].dwvaluesize = sizeof(dword); anamespaceclassinfo[3].lpvalue = &dwsapid; ret = WSAInstallServiceClass(&sci); if (ret == SOCKET_ERROR) { printf("b³¹d wywo³ania WSAInstallServiceClass(): %d\n", WSAGetLastError()); } Pierwsz¹ istotn¹ czynnoœci¹ jest wybór identyfikatora GUID, pod którym klasa zostanie zarejestrowana. Projektowane us³ugi bêd¹ nale a³y do klasy Testowa klasa serwera, a klasa opisuje ogólne atrybuty egzemplarza us³ugi. W omawianym przyk³adzie zdecydowaliœmy siê na zarejestrowanie klasy us³ugi pod identyfikatorem NetWare SAP ID równym 200. Wartoœæ tê wybraliœmy tylko dlatego, e jest ³atwa do zapamiêtania. Równie dobrze mo na by³o arbitralnie wybraæ dowolny identyfikator GUID, a nawet GUID wygenerowany na podstawie numeru portu UDP. Dodatkowo us³uga mo e korzystaæ z protoko³u UDP. W takim przypadku klienty powinny nas³uchiwaæ pod numerem portu Kolejny wa ny krok to wpisanie wartoœci 4 w polu dwcount struktury WSASER- VICECLASSINFO. W omawianym przyk³adzie us³uga jest rejestrowana zarówno w przestrzeni nazw SAP (NS_SAP), jak i w przestrzeni domen Windows NT (NS_NTDS). Zwraca uwagê fakt, e u ywamy czterech struktur WSANSCLASS- INFO, mimo e rejestrujemy us³ugê tylko w dwóch przestrzeniach nazw. Dla ka dej przestrzeni nazw definiujemy jednak dwa atrybuty, a ka dy atrybut wymaga odrêbnej struktury WSANSCLASSINFO. W przypadku ka dej przestrzeni nazw przekazujemy informacjê, czy us³uga bêdzie po³¹czeniowa. W omawianym przyk³adzie us³uga bêdzie bezpo³¹czeniowa, a zatem wartoœæ logiczna SERVICE_TYPE_VALUE_CONN wynosi 0. W przypadku przestrzeni domen Windows NT wybieramy tak e numer portu, pod którym bêdzie dzia³aæ us³uga. W tym celu u ywamy identyfikatora typu us³ugi SERVICE_TYPE_VALUE_UDP- PORT. W przypadku przestrzeni nazw SAP wybieramy identyfikator SAP ID naszej us³ugi, korzystaj¹c z identyfikatora typu SERVICE_TYPE_VALUE_SAPID. W ka dej strukturze WSANSCLASSINFO nale y wpisaæ identyfikator przestrzeni nazw, której dotyczy dany typ us³ugi, a tak e typ i rozmiar wartoœci. W tabeli 10-3 wymieniono typy wartoœci wymagane dla poszczególnych typów us³ug. Tak siê sk³ada, e w omawianym przyk³adzie we wszystkich przypadkach u ywany jest typ DWORD. Ostatnia czynnoœæ to wywo³anie funkcji WSAInstall- ServiceClass i przekazanie struktury WSASERVICECLASSINFO jako parametru tego wywo³ania. Jeœli funkcja WSAInstallServiceClass zakoñczy siê pomyœlnie, zwracana jest wartoœæ 0. W przeciwnym przypadku funkcja zwraca wartoœæ SOCKET_ERROR. Jeœli struktura WSASERVICECLASS jest nieprawid³owa lub

8 306 Czêœæ II: Winsock API Ÿle zbudowana, funkcja WSAGetLastError zwróci wartoœæ WSAEINVAL. Jeœli klasa us³ugi ju istnieje, funkcja ta zwróci wartoœæ WSAEALREADY. W takim przypadku mo na usun¹æ klasê us³ugi, wywo³uj¹c funkcjê WSARemoveServiceClass, która zosta³a zadeklarowana w nastêpuj¹cy sposób: INT WSARemoveServiceClass( LPGUID lpserviceclassid ); Jedynym parametrem tej funkcji jest wskaÿnik do wartoœci GUID identyfikuj¹cej dan¹ klasê us³ugi. Rejestracja us³ugi Po zainstalowaniu klasy, która opisuje ogólne w³aœciwoœci us³ugi, mo na przyst¹piæ do rejestracji egzemplarza us³ugi. Zarejestrowana us³uga staje siê dostêpna dla klientów dzia³aj¹cych na odleg³ych komputerach. Do rejestracji egzemplarza us³ugi s³u y funkcja interfejsu Winsock WSASetService. INT WSASetService ( LPWSAQUERYSET lpqsreginfo, WSAESETSERVICEOP essoperation, DWORD dwcontrolflags ); Pierwszy parametr, lpqsreginfo, to wskaÿnik do struktury WSAQUERYSET, która definiuje dan¹ us³ugê. Wkrótce omówimy jej zawartoœæ. Parametr essoperation okreœla czynnoœæ, która ma byæ wykonana na przyk³ad zarejestrowanie us³ugi lub usuniêcie jej z rejestru. W tabeli 10-4 opisano trzy dozwolone znaczniki. Tabela Znaczniki okreœlaj¹ce czynnoœæ przy wywo³aniu funkcji WSASetService Znacznik czynnoœci Opis RNRSERVICE_REGISTER Rejestracja us³ugi. W dynamicznych przestrzeniach nazw polega na aktywnym rozg³aszaniu informacji o us³udze, a w trwa³ych przestrzeniach nazw na aktualizacji bazy danych. Znacznik nie ma zastosowania do statycznych przestrzeni nazw (nie jest wykonywana adna czynnoœæ). RNRSERVICE_DEREGISTER Usuniêcie us³ugi z rejestru. W dynamicznych przestrzeniach nazw polega na zaprzestaniu aktywnego rozg³aszania informacji o us³udze, a w trwa³ych przestrzeniach nazw na usuniêciu us³ugi z bazy danych. Znacznik nie ma zastosowania do statycznych przestrzeni nazw (nie jest wykonywana adna czynnoœæ). RNRSERVICE_DELETE Usuniêcie wskazanego egzemplarza us³ugi z przestrzeni nazw. Istnieje mo liwoœæ zarejestrowania us³ugi wystêpuj¹cej w kilku egzemplarzach (nale y przy rejestracji u yæ znacznika SERVICE_MULTIPLE). To polecenie usuwa tylko wskazany egzemplarz us³ugi (zdefiniowany w strukturze CSADDR_INFO). Tak e ten znacznik ma zastosowanie wy³¹cznie do dynamicznych i trwa³ych przestrzeni nazw. Trzeci parametr, dwcontrolflags, przyjmuje wartoœæ 0 albo wartoœæ znacznika SERVICE_MULTIPLE. Znacznik ten jest stosowany w przypadku rejestracji wiêkszej liczby adresów w ramach jednego egzemplarza us³ugi. Za³ó my na przyk³ad,

9 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 307 e us³uga ma dzia³aæ na piêciu komputerach. Struktura WSAQUERYSET, przekazana do funkcji WSASetService, zawiera³aby odniesienia do piêciu struktur CSADDR_INFO, z których ka da opisywa³aby po³o enie jednego egzemplarza us³ugi. W takiej sytuacji konieczne by³oby ustawienie znacznika SERVICE_MUL- TIPLE. Poza tym w przysz³oœci mo liwe bêdzie usuniêcie z rejestru jednego egzemplarza us³ugi nale y w tym celu u yæ znacznika RNRSERVICE_DELETE. W tabeli 10-5 opisano wszystkie mo liwe kombinacje czynnoœci i znaczników kontrolnych, a tak e wynik wykonania polecenia w zale noœci od tego, czy us³uga ju istnieje, czy nie. Tabela Kombinacje znaczników w wywo³aniu funkcji WSASetService RNRSERVICE_REGISTER Znaczniki Opis Jeœli us³uga ju istnieje Jeœli us³uga nie istnieje Brak Zast¹pienie istniej¹cego Dodanie nowego egzemegzemplarza us³ugi. plarza us³ugi o podanym adresie. SERVICE_MULTIPLE Aktualizacja egzemplarza us³ugi Dodanie nowego egzemprzez dodanie nowego adresu. plarza us³ugi o podanym adresie. RNRSERVICE_DEREGISTER Znaczniki Opis Jeœli us³uga ju istnieje Jeœli us³uga nie istnieje Brak Usuniêcie wszystkich egzempla- B³¹d. Funkcja zwraca rzy us³ugi, bez usuwania samej WSASERVICE_NOT us³ugi (struktura WSAQUERYSET _FOUND. nie jest usuwana, ale liczba struktur CSADDR_INFO jest równa zero). SERVICE_MULTIPLE Aktualizacja us³ugi przez B³¹d. Funkcja zwraca usuniêcie wskazanych adresów. WSASERVICE_NOT Us³uga pozostaje zarejestrowana _FOUND. nawet po usuniêciu ostatniego adresu. RNRSERVICE_DELETE Znaczniki Opis Jeœli us³uga ju istnieje Jeœli us³uga nie istnieje Brak Ca³kowite usuniêcie us³ugi B³¹d. Funkcja zwraca z przestrzeni nazw. WSASERVICE_NOT- _FOUND. SERVICE_MULTIPLE Aktualizacja us³ugi przez usuniê- B³¹d. Funkcja zwraca cie wskazanych adresów. Po WSASERVICE_NOT usuniêciu ostatniego adresu us³uga _FOUND. jest ca³kowicie usuwana z przestrzeni nazw.

10 308 Czêœæ II: Winsock API Skoro wiemy ju, jak dzia³a funkcja WSASetService, przyjrzyjmy siê bli ej strukturze WSAQUERYSET, któr¹ nale y wype³niæ i przekazaæ do wspomnianej funkcji. Oto definicja tej struktury: typedef struct _WSAQuerySetW { DWORD dwsize; LPTSTR lpszserviceinstancename; LPGUID lpserviceclassid; LPWSAVERSION lpversion; LPTSTR lpszcomment; DWORD dwnamespace; LPGUID lpnsproviderid; LPTSTR lpszcontext; DWORD dwnumberofprotocols; LPAFPROTOCOLS lpafpprotocols; LPTSTR lpszquerystring; DWORD dwnumberofcsaddrs; LPCSADDR_INFO lpcsabuffer; DWORD dwoutputflags; LPBLOB lpblob; } WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW; W polu dwsize nale y wpisaæ rozmiar struktury WSAQUERYSET. Pole lpszservice- InstanceName zawiera ci¹g identyfikuj¹cy dany egzemplarz serwera. Pole lpservice- ClassId to identyfikator GUID klasy us³ugi, do której nale y dany egzemplarz. Pole lpversion jest nieobowi¹zkowe. Mo na w nim przekazywaæ wszelkie informacje o wersji, u yteczne przy obs³udze zapytañ klientów o us³ugê. Pole lpszcomment tak e jest nieobowi¹zkowe. Mo na w nim umieœciæ ci¹g z dowolnym komentarzem. Wartoœæ dwnamespace okreœla przestrzenie nazw, w których ma byæ zarejestrowana us³uga. W przypadku rejestracji us³ugi tylko w jednej przestrzeni nazw nale y podaæ konkretn¹ wartoœæ. W przeciwnym razie nale y u yæ wartoœci NS_ALL. Mo na wskazaæ w³asny serwer przestrzeni nazw (tworzenie w³asnych przestrzeni nazw omówiono w rozdziale 14). W takiej sytuacji w polu dwnamespace nale y wpisaæ 0, a w polu lpnsproviderid identyfikator GUID w³asnej przestrzeni nazw. Zawartoœæ pola lpszcontext okreœla punkt pocz¹tkowy zapytania w hierarchicznej przestrzeni nazw, takiej jak NDS. Pola dwnumberofprotocols oraz lpafpprotocols to opcjonalne parametry, umo liwiaj¹ce zawê enie wyników poszukiwañ do okreœlonych protoko³ów. Zawartoœæ pola dwnumberofprotocols okreœla liczbê struktur AFPROTOCOLS umieszczonych w tablicy lpafpprotocols. Struktura AFPROTOCOLS jest zdefiniowana w nastêpuj¹cy sposób: typedef struct _AFPROTOCOLS { INT iaddressfamily; INT iprotocol; } AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS; Pierwsze pole, iaddressfamily, zawiera sta³¹ identyfikuj¹c¹ rodzinê adresów, na przyk³ad AF_INET lub AF_IPX. Drugie pole, iprotocol, wybiera protokó³ z okreœlonej rodziny, na przyk³ad IPPROTO_TCP lub NSPROTO_IPX. Kolejne pole struktury WSAQUERYSET, lpszquerystring, jest nieobowi¹zkowe i ma zastosowanie wy³¹cznie w odniesieniu do tych przestrzeni nazw, które obs³uguj¹ wzbogacon¹ wersjê jêzyka SQL (Structured Query Language), na przyk³ad Whois++. W omawianym polu umieszcza siê ci¹g z zapytaniem.

11 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 309 Dwa nastêpne pola maj¹ kluczowe znaczenie przy rejestracji us³ugi. Pole dwnumberofcsaddrs okreœla liczbê struktur CSADDR_INFO przekazywanych w polu lpcsabuffer. Ka da struktura CSADDR_INFO definiuje rodzinê adresów i w³aœciwy adres, pod którym zlokalizowana jest us³uga. Jeœli struktur jest wiêcej, dostêpnych bêdzie kilka egzemplarzy us³ugi. Oto definicja opisywanej struktury: typedef struct _CSADDR_INFO { SOCKET_ADDRESS LocalAddr; SOCKET_ADDRESS RemoteAddr; INT isockettype; INT iprotocol; } CSADDR_INFO typedef struct _SOCKET_ADDRESS { LPSOCKADDR lpsockaddr; INT isockaddrlength; } SOCKET_ADDRESS, *PSOCKET_ADDRESS, FAR * LPSOCKET_ADDRESS; Zamieszczono tak e definicjê struktury SOCKET_ADDRESS. Rejestruj¹c us³ugê mo na okreœliæ adres lokalny i odleg³y. Pole adresu lokalnego (LocalAddr) s³u y do definiowania adresu, z którym powinien byæ powi¹zany egzemplarz us³ugi, natomiast w polu adresu odleg³ego (RemoteAddr) nale y wpisywaæ adres, który klienty powinny podawaæ w wywo³aniach connect lub sendto. Pozosta³e dwa pola isockettype oraz iprotocol okreœlaj¹ typ gniazda (na przyk³ad SOCK- _STREAM, SOCK_DGRAM) i rodzinê protoko³ów (na przyk³ad AF_INET lub AF_IPX) dla danych adresów. Dwa ostatnie pola struktury WSAQUERYSET dwoutputflags i lpblob w zasadzie nie s¹ u ywane przy rejestracji us³ugi. Bywaj¹ natomiast przydatne przy tworzeniu zapytania o us³ugê (zobacz nastêpny podrozdzia³). Strukturê typu BLOB mo e zwróciæ tylko serwer przestrzeni nazw. Oznacza to, e przy rejestracji us³ugi nie mo na zdefiniowaæ w³asnej struktury BLOB, która mia³aby byæ zwracana w odpowiedzi na zapytania klientów. W tabeli 10-6 wymieniono pola struktury WSAQUERYSET wraz z informacjami o tym, które pola s¹ obowi¹zkowe, a które nie w zale noœci od tego, czy struktura jest u ywana do rejestracji us³ugi, czy do formu³owania zapytania. Rejestracja us³ugi przyk³ad W tym punkcie opiszemy proces rejestracji w³asnej us³ugi w przestrzeni nazw SAP oraz NTDS. Przestrzeñ domen Windows NT oferuje bardzo du e mo liwoœci, st¹d te decyzja o uwzglêdnieniu jej w naszym przyk³adzie. Musimy jednak zwróciæ uwagê na dwa istotne fakty. Po pierwsze, przestrzeñ domen Windows NT wymaga œrodowiska Windows 2000, gdy funkcjonuje w oparciu o us³ugi Active Directory. Oznacza to tak e, e stacja robocza Windows 2000, na której ma byæ instalowana i/lub wyszukiwana us³uga, musi mieæ w danej domenie konto komputera, umo liwiaj¹ce dostêp do Active Directory. Po drugie, w przestrzeni domen Windows NT mo na rejestrowaæ adresy gniazd z dowolnej rodziny protoko³ów. Oznacza to, e w tej samej przestrzeni nazw mo na zarejestrowaæ w³asne us³ugi IPX i IP. Istnieje tak e metoda dynamicznego dodawania i usuwania us³ug realizowanych w oparciu o protokó³ IP. Program z listingu 10-1 ilustruje kolejne etapy rejestracji egzemplarza us³ugi. Chc¹c uproœciæ przyk³ad, zrezygnowaliœmy z kontroli b³êdów.

12 310 Czêœæ II: Winsock API Tabela Pola struktury WSAQUERYSET Pole Przy zapytaniu Przy rejestracji dwsize Wymagane Wymagane lpszserviceinstancename Wymagany ci¹g lub "*" Wymagane lpserviceclassid Wymagane Wymagane lpversion Opcjonalne Opcjonalne lpszcomment Ignorowane Opcjonalne dwnamespace Musi byæ okreœlona zawartoœæ Musi byæ okreœlona zawartoœæ lpnsproviderid jednego z tych dwóch pól jednego z tych dwóch pól. lpszcontext Opcjonalne Opcjonalne dwnumberofprotocols Zero lub wiêcej Zero lub wiêcej lpafpprotocols Opcjonalne Opcjonalne lpszquerystring Opcjonalne Ignorowane dwnumberofcsaddrs Ignorowane Wymagane lpcsabuffer Ignorowane Wymagane dwoutputflags Ignorowane Opcjonalne lpblob Ignorowane, mo e byæ zwraca- Ignorowane ne w odpowiedzi na zapytanie Listing Przyk³ad zastosowania funkcji WSASetService SOCKET socks[2]; WSAQUERYSET qs; CSADDR_INFO lpcsaddr[2]; SOCKADDR_IN sa_in; SOCKADDR_IPX sa_ipx; IPX_ADDRESS_DATA ipx_data; GUID guid = SVCID_NETWARE(200); int ret, cb; memset(&qs, 0, sizeof(wsaqueryset)); qs.dwsize = sizeof(wsaqueryset); qs.lpszserviceinstancename = (LPSTR)"Serwer testowy"; qs.lpserviceclassid = &guid; qs.dwnamespace = NS_ALL; qs.lpnsproviderid = NULL; qs.lpcsabuffer = lpcsaddr; qs.lpblob = NULL; // // Ustalamy adres IP naszej us³ugi // memset(&sa_in, 0, sizeof(sa_in)); sa_in.sin_family = AF_INET; sa_in.sin_addr.s_addr = htonl(inaddr_any); sa_in.sin_port = 5150; socks[0] = socket(af_inet, SOCK_DGRAM, IPPROTO_UDP); ret = bind(socks[0], (SOCKADDR *)&sa_in, sizeof(sa_in)); cb = sizeof(sa_in); getsockname(socks[0], (SOCKADDR *)&sa_in, &cb);

13 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 311 lpcsaddr[0].isockettype = SOCK_DGRAM; lpcsaddr[0].iprotocol = IPPROTO_UDP; lpcsaddr[0].localaddr.lpsockaddr = (SOCKADDR *)&sa_in; lpcsaddr[0].localaddr.isockaddrlength = sizeof(sa_in); lpcsaddr[0].remoteaddr.lpsockaddr = (SOCKADDR *)&sa_in; lpcsaddr[0].remoteaddr.isockaddrlength = sizeof(sa_in); // // Konfiguracja adresu IPX dla naszej us³ugi // memset(sa_ipx.sa_netnum, 0, sizeof(sa_ipx.sa_netnum)); memset(sa_ipx.sa_nodenum, 0, sizeof(sa_ipx.sa_nodenum)); sa_ipx.sa_family = AF_IPX; sa_ipx.sa_socket = 0; socks[1] = socket(af_ipx, SOCK_DGRAM, NSPROTO_IPX); ret = bind(socks[1], (SOCKADDR *)&sa_ipx, sizeof(sa_ipx)); cb = sizeof(ipx_address_data); memset(&ipx_data, 0, cb); ipx_data.adapternum = 0; ret = getsockopt(socks[1], NSPROTO_IPX, IPX_ADDRESS, (char *)&ipx_data, &cb); cb = sizeof(sockaddr_ipx); getsockname(socks[1], (SOCKADDR *)sa_ipx, &cb); memcpy(sa_ipx.sa_netnum, ipx_data.netnum, sizeof(sa_ipx.sa_netnum)); memcpy(sa_ipx.sa_nodenum, ipx_data.nodenum, sizeof(sa_ipx.sa_nodenum)); lpcsaddr[1].isockettype = SOCK_DGRAM; lpcsaddr[1].iprotocol = NSPROTO_IPX; lpcsaddr[1].localaddr.lpsockaddr = (struct sockaddr *)&sa_ipx; lpcsaddr[1].localaddr.isockaddrlength = sizeof(sa_ipx); lpcsaddr[1].remoteaddr.lpsockaddr = (struct sockaddr *)&sa_ipx; lpcsaddr[1].remoteaddr.isockaddrlength = sizeof(sa_ipx); qs.dwnumberofcsaddr = 2; ret = WSASetService(&qs, RNRSERVICE_REGISTER, 0L); Przyk³adowy fragment programu z listingu 10-1 realizuje czynnoœci, dziêki którym procesy klienckie bêd¹ mog³y uzyskaæ adres us³ugi, niezbêdny do nawi¹zania z ni¹ komunikacji. Pierwszym etapem rejestracji jest zainicjowanie struktury WSAQUERYSET. Musimy tak e nadaæ nazwê rejestrowanemu egzemplarzowi us³ugi. W przyk³adzie u yto nazwy Serwer testowy. Rejestruj¹c egzemplarz us³ugi, koniecznie nale y u ywaæ tego samego identyfikatora GUID, który podawany by³ przy rejestracji klasy us³ugi. Ka dy rejestrowany egzemplarz us³ugi musi nale eæ do konkretnej klasy. W tym przypadku wybraliœmy klasê Testowa klasa serwera, zdefiniowan¹ w podrozdziale Instalowanie klasy us³ugi. Identyfikator GUID tej klasy to SVCID_NETWARE(200). Kolejnym etapem jest wybór interesuj¹cych nas przestrzeni nazw. Poniewa nasza us³uga wspó³pracuje zarówno z protoko³em IPX, jak i UDP, wybierzemy wszystkie

14 312 Czêœæ II: Winsock API przestrzenie (NS_ALL). Wybieramy predefiniowane przestrzenie nazw, a zatem w polu lpnsproviderid musimy wpisaæ NULL. Nastêpna wa na czynnoœæ to przygotowanie struktur SOCKADDR w tablicy CSADDR_INFO, przekazywanej do funkcji WSASetService w polu lpcsabuffer struktury WSAQUERYSET. Nale y zwróciæ uwagê, e przyk³adowy fragment programu tak e tworzy gniazda i ich powi¹zania z lokalnym adresem. Odbywa siê to przed wype³nieniem struktury SOCKADDR. Przyjêliœmy takie rozwi¹zanie, poniewa musimy znaæ dok³adny adres lokalny, z którym maj¹ siê ³¹czyæ klienty. Na przyk³ad tworz¹c nasze gniazdo UDP dla serwera, tworzymy powi¹zanie z INADDR_ANY, a zatem nie uzyskujemy w³aœciwego adresu IP, zanim nie wywo³amy funkcji getsockname. Korzystaj¹c z informacji zwróconych przez getsockname, mo emy wype³niæ strukturê SOCKADDR_IN. W ramach struktury CSADDR_INFO wybieramy typ gniazda i protokó³. Pozosta³e dwa pola zawieraj¹ informacje o adresie lokalnym i odleg³ym. Adres lokalny to ten, z którym powinien byæ powi¹zany serwer, natomiast adres odleg³y s³u y klientom do nawi¹zywania po³¹czeñ z us³ug¹. Po wype³nieniu struktury SOCKADDR_IN dla serwera dzia³aj¹cego w oparciu o protokó³ UDP, przystêpujemy do konfiguracji us³ugi dzia³aj¹cej w oparciu o protokó³ IPX. Z rozdzia³u 6 wiemy, e serwery powinny tworzyæ powi¹zanie z zewnêtrznym numerem sieci przez wyzerowanie numeru sieci i wêz³a. Równie w tym przypadku nie uzyskamy adresu potrzebnego klientom, a zatem musimy wywo³aæ opcjê gniazda IPX_ADDRESS, aby odczytaæ rzeczywisty adres. Wype³niaj¹c strukturê CSADDR_INFO z myœl¹ o protokole IPX, nale y wybraæ typ gniazda SOCK_DGRAM oraz typ protoko³u NSPROTO_IPX. Ostatnia czynnoœæ to wpisanie wartoœci 2 w polu dwnumberofcsaddrs struktury WSAQUERYSET istniej¹ bowiem dwa adresy, UDP i IPX, z których klienty mog¹ korzystaæ przy nawi¹zywaniu po³¹czeñ. Program koñczy siê wywo³aniem funkcji WSASetService, do której przekazujemy strukturê WSAQUERYSET, znacznik RNRSERVICE_REG- ISTER i pust¹ listê znaczników kontrolnych. Poniewa nie u ywamy znacznika SERVICE_MULTIPLE, przy usuwaniu us³ugi z rejestru usuniête zostan¹ od razu wszystkie egzemplarze (zarówno adres UDP, jak i IPX). W opisanym przyk³adzie nie uwzglêdniliœmy jednego przypadku rejestrowania us³ugi na komputerze z kilkoma po³¹czeniami sieciowymi (ang. multihomed machine). Jeœli na takim komputerze utworzymy serwer dzia³aj¹cy w oparciu o protokó³ UDP, klienty bêd¹ mog³y siê z nim ³¹czyæ za poœrednictwem dowolnego z dostêpnych interfejsów. W przypadku protoko³u IP nie wystarczy wywo³anie getsockname trzeba uzyskaæ informacje o wszystkich lokalnych interfejsach IP. Istnieje szereg ró nych metod uzyskania tych informacji, przy czym metody te ró ni¹ siê w zale noœci od u ywanej platformy systemowej. Jeden ze sposobów wspólny dla wszystkich platform polega na wywo³aniu funkcji gethostbyname, która zwróci listê adresów IP odpowiadaj¹cych podanej nazwie. Interfejs Winsock 2 oferuje tak e polecenie ioctl SIO_GET_INTERFACE_LIST. W systemie Windows 2000 dostêpne jest polecenie ioctl SIO_ADDRESS_LIST- _QUERY. Mo na te u yæ funkcji pomocniczych IP, opisanych w dodatku B. Proste mechanizmy odwzorowania nazw TCP/IP oraz funkcjê gethostbyname opisano w rozdziale 6, natomiast polecenia ioctl w rozdziale 9. Na dysku CD- ROM do³¹czonym do ksi¹ ki zamieszczono bardziej rozbudowany przyk³adowy program Rnrcs.c. Uwzglêdniono w nim tak e rejestracjê us³ug na komputerach z kilkoma po³¹czeniami sieciowymi.

15 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 313 Uzyskiwanie informacji o us³udze Wiemy ju, jak zarejestrowaæ w³asn¹ us³ugê w przestrzeni nazw. Przyjrzyjmy siê zatem bli ej procesowi formu³owania zapytania o us³ugê. W odpowiedzi na zapytanie klient mo e uzyskaæ informacje na temat us³ugi, przydatne przy nawi¹zywaniu z ni¹ komunikacji. Proces odwzorowania nazw jest znacznie prostszy od rejestracji us³ugi, mimo e wymaga u ycia a trzech funkcji: WSALookupService- Begin, WSALookupServiceNext oraz WSALookupServiceEnd. Pierwszym etapem na drodze do uzyskania informacji o us³udze powinno byæ wywo³anie funkcji WSALookupServiceBegin. Funkcja ta inicjuje zapytanie i pozwala okreœliæ warunki, jakim maj¹ podlegaæ uzyskiwane odpowiedzi. Prototyp funkcji ma nastêpuj¹c¹ postaæ: INT WSALookupServiceBegin ( LPWSAQUERYSET lpqsrestrictions, DWORD dwcontrolflags, LPHANDLE lphlookup ); Pierwszym parametrem jest struktura WSAQUERYSET, zawieraj¹ca informacje o ograniczeniach zapytania na przyk³ad listê przestrzeni nazw, do których zapytanie ma byæ skierowane. Drugi parametr, dwcontrolflags, okreœla g³êbokoœæ poszukiwañ. W tabeli 10-7 wymieniono dostêpne znaczniki oraz sposoby ich interpretacji. Znaczniki okreœlaj¹ sposób przetwarzania zapytania oraz rodzaj danych zwracanych w odpowiedzi na zapytanie. Ostatni parametr nale y do typu HANDLE i jest inicjowany po powrocie z funkcji. Funkcja zwraca wartoœæ 0 po pomyœlnym wykonaniu albo wartoœæ SOCKET_ERROR, jeœli wyst¹pi b³¹d. W przypadku przekazania jednego lub kilku nieprawid³owych parametrów, funkcja WSAGetLastError zwróci wartoœæ WSAEINVAL. Jeœli nazwa zostanie znaleziona w przestrzeni nazw, ale brak jest danych spe³niaj¹cych zadane kryteria, zwrócony zostanie kod b³êdu WSANO_DATA. Jeœli dana us³uga nie istnieje, WSAGetLastError zwróci wartoœæ WSASERVICE_NOT_FOUND. Tabela Znaczniki kontrolne Znacznik LUP_DEEP LUP_CONTAINERS LUP_NOCONTAINERS LUP_FLUSHCACHE LUP_FLUSHPREVIOUS Opis W przypadku hierarchicznych przestrzeni nazw zapytanie ma siêgaæ g³êboko (poszukiwania nie zakoñcz¹ siê na pierwszym poziomie). Wyszukiwanie wy³¹cznie zasobników. Dotyczy tylko hierarchicznych przestrzeni nazw. Wyszukiwanie z pominiêciem zasobników. Dotyczy tylko hierarchicznych przestrzeni nazw. Nakazuje zignorowaæ informacje z pamiêci podrêcznej i wys³aæ zapytanie bezpoœrednio do serwera przestrzeni nazw. Uwaga: nie wszystkie serwery przechowuj¹ zapytania w pamiêci podrêcznej. Nakazuje serwerowi nazw usuniêcie poprzednio zwróconego zestawu informacji. Tego znacznika u ywa siê zwykle w sytuacji, gdy funkcja WSALookupServiceNext zwróci³a kod b³êdu WSA_NOT_ENOUGH_MEMORY. Informacje, które nie zmieœci³y siê w buforze, s¹ usuwane i nastêpuje próba pobrania kolejnej porcji informacji.

16 314 Czêœæ II: Winsock API Znacznik LUP_NEAREST LUP_RES_SERVICE LUP_RETURN_ADDR LUP_RETURN_ALIASES LUP_RETURN_ALL LUP_RETURN_BLOB LUP_RETURN _COMMENT LUP_RETURN_NAME LUP_RETURN_TYPE LUP_RETURN_VERSION Opis Nakazuje zwracanie wyników w kolejnoœci odpowiadaj¹cej odleg³oœci serwerów od klienta. Nale y podkreœliæ, e za obliczanie odleg³oœci odpowiada serwer przestrzeni nazw, poniewa przy rejestracji us³ugi nie s¹ przekazywane adne informacje dotycz¹ce lokalizacji. Serwery nazw nie musz¹ realizowaæ tej funkcji. Nakazuje zwrócenie lokalnego adresu w strukturze CSAD- DR_INFO. Nakazuje zwrócenie adresów w polu lpcsabuffer. Nakazuje zwrócenie wy³¹cznie informacji o aliasach. Aliasy bêd¹ zwracane przy kolejnych wywo³aniach funkcji WSALookupServiceNext, przy czym po powrocie z funkcji ustawiony bêdzie znacznik RESULT_IS_ALIAS. Nakazuje zwrócenie wszystkich dostêpnych informacji. Nakazuje zwrócenie danych prywatnych w polu lpblob. Nakazuje zwrócenie komentarza w polu lpszcomment. Nakazuje zwrócenie nazwy w polu lpszserviceinstancename. Nakazuje zwrócenie typu w polu lpserviceclassid. Nakazuje zwrócenie wersji w polu lpversion. Uchwyt lphlookup, zwrócony w wyniku wywo³ania funkcji WSALookupService- Begin nale y przekazaæ do funkcji WSALookupServiceNext, która z kolei zwróci w³aœciwe dane. Oto deklaracja funkcji: INT WSALookupServiceNext ( HANDLE hlookup, DWORD dwcontrolflags, LPDWORD lpdwbufferlength, LPWSAQUERYSET lpqsresults ); Uchwyt hlookup pochodzi z wywo³ania funkcji WSALookupServiceBegin. Parametr dwcontrolflags jest interpretowany tak samo, jak przy wywo³aniu WSALookup- ServiceBegin, z tym e jedynym uwzglêdnianym znacznikiem jest LUP_FLUSH- PREVIOUS. Parametr lpdwbufferlength to d³ugoœæ bufora, którego adres jest przekazywany jako parametr lpqsresults. Poniewa struktura WSAQUERYSET mo e zawieraæ obiekty binarne (BLOB), czêsto konieczne jest zarezerwowanie bufora wiêkszego ni sama struktura. Jeœli bufor jest zbyt ma³y, by pomieœciæ zwracane dane, wynikiem wywo³ania funkcji bêdzie kod b³êdu WSA_NOT_ENOUGH- _MEMORY. Po zainicjowaniu zapytania wywo³aniem funkcji WSALookupServiceBegin nale y wywo³ywaæ funkcjê WSALookupServiceNext tak d³ugo, dopóki nie wygeneruje ona b³êdu WSA_E_NO_MORE (10110). W tym miejscu istotna uwaga: we wczeœniejszych wersjach interfejsu Winsock brak dalszych danych sygnalizowany by³ kodem b³êdu WSAENOMORE (10102). Dlatego ka dy uniwersalny program powinien reagowaæ na oba wymienione kody. Po uzyskaniu wszystkich danych lub gdy z jakiegokolwiek innego powodu wysy³anie zapytania ma byæ zakoñczo-

17 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 315 ne, nale y wywo³aæ funkcjê WSALookupServiceEnd, jako parametr podaj¹c uchwyt identyfikuj¹cy zapytanie. Oto deklaracja tej funkcji: INT WSALookupServiceEnd ( HANDLE hlookup); Formu³owanie zapytania Przeanalizujemy teraz fragment programu, który formu³uje zapytanie dotycz¹ce us³ugi zarejestrowanej w poprzednim przyk³adzie. Najpierw musimy przygotowaæ strukturê WSAQUERYSET definiuj¹c¹ zapytanie. Oto odpowiedni fragment programu: WSAQUERYSET qs; GUID guid = SVCID_NETWARE(200); AFPROTOCOLS afp[2] = {{AF_IPX, NSPROTO_IPX}, {AF_INET, IPPROTO_UDP}}; HANDLE hlookup; int ret; memset(&qs, 0, sizeof(qs)); qs.dwsize = sizeof(wsaqueryset); qs.lpserviceinstancename = "Serwer testowy"; qs.lpserviceclassid = &guid; qs.dwnamespace = NS_ALL; qs.dwnumberofprotocols = 2; qs.lpafpprotocols = afp; ret = WSALookupServiceBegin(&qs, LUP_RETURN_ADDR LUP_RETURN_NAME, &hlookup); if (ret == SOCKET_ERROR) // B³¹d Nie wolno zapominaæ, e w ka dym zapytaniu o us³ugê musi wystêpowaæ identyfikator GUID klasy, do której dana us³uga nale y. Zmiennej guid przypisujemy identyfikator klasy us³ugi naszego serwera. Najpierw ca³a struktura qs jest wype³niana zerami, a nastêpnie w polu dwsize wpisywany jest jej rozmiar. Kolejny krok to okreœlenie nazwy poszukiwanej us³ugi. Mo na podaæ dok³adn¹ nazwê serwera albo symbol wieloznaczny (*). W tym drugim przypadku zwrócone zostan¹ informacje o wszystkich us³ugach nale ¹cych do klasy GUID. Zapytanie ma dotyczyæ wszystkich przestrzeni nazw, dlatego w odpowiednim polu wpisujemy sta³¹ NS_ALL. Ostatnia grupa informacji dotyczy protoko³ów, za pomoc¹ których klient mo e ³¹czyæ siê z us³ug¹. W omawianym przyk³adzie s¹ to protoko³y IPX oraz UDP/IP. Informacja o protoko³ach ma postaæ tablicy z³o onej z dwóch struktur AFPROTOCOLS. Jesteœmy ju gotowi do zainicjowania zapytania, pora zatem na wywo³anie funkcji WSALookupServiceBegin. Pierwszym parametrem jest przygotowana w³aœnie struktura WSAQUERYSET, natomiast drugi parametr to zestaw znaczników, które okreœlaj¹ rodzaj informacji, jakie powinny zostaæ zwrócone po odszukaniu us³ugi. W omawianym przypadku chcemy uzyskaæ informacje o adresie i nazwê us³ugi. Podajemy zatem alternatywê (OR) znaczników LUP_RETURN- _ADDR i LUP_RETURN_NAME. U ycie znacznika LUP_RETURN_NAME ma sens tylko wtedy, gdy w zapytaniu nie podano nazwy us³ugi, lecz symbol wieloznaczny (*). W przeciwnym razie program formu³uj¹cy zapytanie na pewno zna ju nazwê. Ostatnim parametrem jest uchwyt (zmienna typu HANDLE) identyfikuj¹cy konkretne zapytanie. Zostanie on zainicjowany po udanym powrocie z funkcji.

18 316 Czêœæ II: Winsock API Po udanym otwarciu zapytania wywo³ujemy WSALookupServiceNext tak d³ugo, dopóki nie zg³osi ona b³êdu WSA_E_NO_MORE. Po ka dym wywo³aniu uzyskujemy porcjê informacji o jednej z us³ug, które spe³niaj¹ zadane kryteria. Oto fragment programu realizuj¹cy powy sze czynnoœci: char buff[sizeof(wsaqueryset) ]; DWORD dwlength, dwerr; WSAQUERYSET *pqs = NULL; SOCKADDR *addr; int i; pqs = (WSAQUERYSET *)buff; dwlength = sizeof(wsaqueryset) ; while (1) { ret = WSALookupServiceNext(hLookup, 0, &dwlength, pqs); if (ret == SOCKET_ERROR) { if ((dwerr = WSAGetLastError()) == WSAEFAULT) { printf("bufor za ma³y; wymagany rozmiar: %d\n", dwlength); break; } else if (dwerr == WSA_E_NO_MORE) (dwerr = WSAENOMORE)) break; else { printf("operacja zakoñczona z b³êdem %d\n", dwerr); break; } } for (i = 0; i < pqs->dwnumberofcsaddrs; i++) { addr = (SOCKADDR *)pqs->lpcsabuffer[i].remoteaddr.lpsockaddr; if (addr->sa_family == AF_INET) { SOCKADDR_IN *ipaddr = (SOCKADDR_IN *)addr; printf("adres IP:port = %s:%d\n", inet_ntoa(addr->sin_addr), addr->sin_port); } else if (addr->sa_family == AF_IPX) { SOCKADDR_IPX *ipxaddr = (SOCKADDR_IPX *)addr; printf("%02x%02x%02x%02x.%02x%02x%02x%02x%02x%02x:%04x", (unsigned char)ipxaddr->sa_netnum[0], (unsigned char)ipxaddr->sa_netnum[1], (unsigned char)ipxaddr->sa_netnum[2], (unsigned char)ipxaddr->sa_netnum[3], (unsigned char)ipxaddr->sa_nodenum[0], (unsigned char)ipxaddr->sa_nodenum[1], (unsigned char)ipxaddr->sa_nodenum[2], (unsigned char)ipxaddr->sa_nodenum[3], (unsigned char)ipxaddr->sa_nodenum[4], (unsigned char)ipxaddr->sa_nodenum[5], ntohs(ipxaddr->sa_socket)); } } } WSALookupServiceEnd(hLookup);

19 Rozdzia³ 10: Rejestracja i odwzorowanie nazw 317 Powy szy przyk³ad jest przejrzysty, ale nieco uproszczony. W wywo³aniu WSA- LookupServiceNext wystarczy podaæ poprawny uchwyt zapytania, d³ugoœæ bufora na wyniki i wskaÿnik do tego bufora. Nie trzeba okreœlaæ adnych znaczników kontrolnych, poniewa jedynym znacznikiem branym pod uwagê przez tê funkcjê jest LUP_FLUSHPREVIOUS. Jeœli bufor jest za ma³y, a znacznik ustawiony, wyniki wywo³ania zostan¹ usuniête. Jednak w przyk³adowym programie nie u ywamy znacznika LUP_FLUSHPREVIOUS i jeœli bufor bêdzie zbyt ma³y, funkcja wygeneruje b³¹d WSAEFAULT. W takim przypadku zmiennej lpdwbufferlenght przypisywany jest minimalny wymagany rozmiar bufora. W przyk³adzie u ywamy bufora o sta³ym rozmiarze, równym rozmiarowi struktury WSAQUERYSET powiêkszonemu o 2000 bajtów. Poniewa prosimy wy³¹cznie o nazwy i adresy us³ug, taka wielkoœæ bufora powinna wystarczyæ. Oczywiœcie w ostatecznych wersjach oprogramowania nale y uwzglêdniaæ tak e obs³ugê b³êdu WSAEFAULT. Po ka dym udanym wywo³aniu funkcji WSALookupServiceNext w buforze umieszczana jest struktura WSAQUERYSET zawieraj¹ca wyniki. Przyk³adowe zapytanie dotyczy³o nazw i adresów, a zatem skupimy nasze zainteresowanie na polach lpszserviceinstancename oraz lpcsabuffer. Pierwsze zawiera nazwê us³ugi, a drugie tablicê struktur CSADDR_INFO z informacjami adresowymi dotycz¹cymi us³ugi. Parametr dwnumberofcsaddrs informuje o liczbie zwróconych adresów. Przyk³adowy program po prostu wyœwietla te adresy, przy czym brane s¹ pod uwagê wy³¹cznie adresy IPX i IP, poniewa tylko te rodziny adresów wskazaliœmy przy otwieraniu zapytania. Gdyby w zapytaniu zamiast nazwy us³ugi podany zosta³ symbol wieloznaczny (*), ka de wywo³anie WSALookupServiceNext zwróci³oby informacje o konkretnym egzemplarzu us³ugi dzia³aj¹cym gdzieœ w sieci oczywiœcie pod warunkiem, e zarejestrowano i uruchomiono wiêcej ni jeden egzemplarz. Po zwróceniu informacji o wszystkich egzemplarzach generowany jest b³¹d WSA_E_NO- _MORE, co powoduje wyjœcie z pêtli. Ostatnia czynnoœæ to wywo³anie funkcji WSALookupServiceEnd z uchwytem zapytania. Funkcja ta zwalnia wszystkie zasoby przydzielone do obs³ugi zapytania. Zapytania kierowane do przestrzeni nazw DNS Jak ju wczeœniej wspomniano, przestrzeñ nazw DNS jest statyczna, co oznacza, e nie mo na w niej dynamicznie zarejestrowaæ w³asnej us³ugi. Nic nie stoi jednak na przeszkodzie, by u ywaæ funkcji odwzorowania nazw Winsock do formu³owania zapytañ o us³ugi dzia³aj¹ce w tej przestrzeni nazw. Odczytywanie odpowiedzi na zapytania kierowane do DNS jest nieco bardziej skomplikowane, ni w przypadku zwyk³ych zapytañ o samodzielnie zarejestrowane us³ugi. Serwer przestrzeni nazw DNS zwraca bowiem odpowiedzi w formie obiektu binarnego BLOB. Dlaczego? Aby udzieliæ odpowiedzi, wróæmy na chwilê do rozdzia³u 6, w którym przy okazji omówienia funkcji gethostbyname opisywana by³a struktura HOSTENT. Jest ona zwracana w odpowiedzi na zapytanie o nazwê i zawiera nie tylko adresy IP, lecz tak e aliasy. Informacji tych nie uwzglêdniono jednak w definicji struktury WSAQUERYSET. Struktura zwracanego obiektu BLOB nie jest dobrze udokumentowana, co powoduje, e bezpoœrednie kierowanie zapytañ do DNS bywa nie lada wyzwaniem. Najpierw przyjrzyjmy siê procedurze otwierania zapytania. Plik Dnsquery.c, zamieszczony na CD-ROM-ie do³¹czonym do ksi¹ ki, zawiera kom-

20 318 Czêœæ II: Winsock API pletny przyk³adowy program, który ilustruje technikê kierowania zapytañ do DNS. Przeanalizujemy teraz poszczególne czêœci tego programu. Poni szy fragment inicjuje zapytanie do DNS: WSAQUERYSET qs; AFPROTOCOLS afp [2] = {{AF_INET, IPPROTO_UDP}, {AF_INET, IPPROTO_TCP}}; GUID hostnameguid = SVCID_INET_HOSTADDRBYNAME; DWORD dwlength = sizeof(wsaqueryset) + sizeof(hostent) ; HANDLE hquery; qs = (WSAQUERYSET *)buff; memset(&qs, 0, sizeof(qs)); qs.dwsize = sizeof(wsaqueryset); qs.lpszserviceinstancename = argv[1]; qs.lpserviceclassid = &hostnameguid; qs.dwnamespace = NS_NDS; qs.dwnumberofprotocols = 2; qs.lpafprotocols = afp; ret = WSALookupServiceBegin(&qs, LUP_RETURN_NAME LUP_RETURN_BLOB, &hquery); if (ret == SOCKET_ERROR) // B³¹d Przygotowanie zapytania przebiega podobnie, jak w poprzednim przyk³adzie. Najwa niejsza ró nica polega na u yciu predefiniowanego identyfikatora GUID SVCID_INET_HOSTADDRBYNAME. Wartoœæ ta identyfikuje zapytania o nazwy hostów. Pole lpszserviceinstancename zawiera nazwê hosta, któr¹ chcemy odwzorowaæ na adres. Poniewa odwzorowanie odbywa siê w przestrzeni nazw DNS, w polu dwnamespace musimy wpisaæ sta³¹ NS_DNS. Pole lpafprotocols wskazuje na tablicê z³o on¹ z dwóch struktur AFPROTOCOLS. W tablicy wymieniamy dwa protoko³y TCP/IP oraz UDP/IP jako te, których dotyczyæ ma zapytanie. Po utworzeniu zapytania mo emy wywo³aæ funkcjê WSALookupServiceNext, aby uzyskaæ na nie odpowiedÿ. char buff[sizeof(wsaqueryset) + sizeof(hostent) )]; DWORD dwlength = sizeof(wsaqueryset)+ sizeof(hostent) ; WSAQUERYSET *pqs; HOSTENT *hostent; pqs = (WSAQUERYSET *)buff; pqs->dwsize = sizeof(wsaqueryset); ret = WSALookupServiceNext(hQuery, 0, &dwlength, pqs); if (ret == SOCKET_ERROR) // B³¹d WSALookupServiceEnd(hQuery); hostent = pqs->lpblob->pblobdata; Poniewa serwer nazw DNS zwraca informacje dotycz¹ce hosta w postaci obiektu BLOB, musimy zarezerwowaæ odpowiednio obszerny bufor. W przyk³adowym

Stronicowanie na ¹danie

Stronicowanie na ¹danie Pamiêæ wirtualna Umo liwia wykonywanie procesów, pomimo e nie s¹ one w ca³oœci przechowywane w pamiêci operacyjnej Logiczna przestrzeñ adresowa mo e byæ du o wiêksza od fizycznej przestrzeni adresowej

Bardziej szczegółowo

Rozwiązywanie nazw w sieci. Identyfikowanie komputerów w sieci

Rozwiązywanie nazw w sieci. Identyfikowanie komputerów w sieci Rozwiązywanie nazw w sieci Identyfikowanie komputerów w sieci Protokół TCP/IP identyfikuje komputery źródłowe i docelowe poprzez ich adresy IP. Jednakże użytkownicy łatwiej zapamiętają słowa niż numery.

Bardziej szczegółowo

Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile

Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile Instalacja sterowników do urz¹dzeñ wielkoformatowych zainstalowanych w firmie Centrum Ksero STUDIO K2 s.c w Pile sterowniki znajduj¹ siê na stronie www.centrumksero.pl w zak³adce DO POBRANIA/STEROWNIKI

Bardziej szczegółowo

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB

ABONENCKA CENTRALA TELEFONICZNA SIGMA. Instalacja sterownika USB ABONENCKA CENTRALA TELEFONICZNA SIGMA Instalacja sterownika USB 1 SIGMA PLATAN Sp. z o.o. 81-855 SOPOT, ul. Platanowa 2 tel. (0-58) 555-88-00, fax (0-58) 555-88-01 www.platan.pl e-mail: platan@platan.pl

Bardziej szczegółowo

PRZETWORNIK PROGRAMOWALNY NAPIÊCIA I PR DU STA EGO TYPU P20H

PRZETWORNIK PROGRAMOWALNY NAPIÊCIA I PR DU STA EGO TYPU P20H PRZETWORNIK PROGRAMOWALNY NAPIÊCIA I PR DU STA EGO TYPU P20H Instrukcja konfiguracji przetwornika P20H za pomoc¹ programu LPCon 1 2 Spis treœci 1. Konfiguracja przetwornika za pomoc¹ programu LPCon...

Bardziej szczegółowo

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10)

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10) 5.5. Wyznaczanie zer wielomianów 79 gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10) gdzie stopieñ wielomianu p 1(x) jest mniejszy lub równy n, przy

Bardziej szczegółowo

TÜV Rheinland Polska. Nowy Znak. Odpowiadamy na Pañstwa pytania. www.tuv.pl

TÜV Rheinland Polska. Nowy Znak. Odpowiadamy na Pañstwa pytania. www.tuv.pl TÜV Rheinland Polska Nowy Znak Odpowiadamy na Pañstwa pytania Odpowiadamy na Pañstwa pytania wszystko czego chc¹ siê Pañstwo dowiedzieæ na temat nowego znaku TÜV Rheinland. Zgodnie z has³em Jeden dla wszystkich

Bardziej szczegółowo

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW

ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW ZA CZNIKI ZA CZNIK C: FUNKCJE KLAWISZY I SPOSOBY WPROWADZANIA PARAMETRÓW Pola, do których wprowadzamy dane, mog¹ byæ: znakowe, numeryczne, typu daty oraz typu memo (pola tekstowe). Istniej¹ ró nice w wykorzystaniu

Bardziej szczegółowo

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy Instrukcja obsługi programu 2.11. Przygotowanie programu do pracy - ECP Architektura inter/intranetowa System Informatyczny CELAB Przygotowanie programu do pracy - Ewidencja Czasu Pracy Spis treści 1.

Bardziej szczegółowo

API transakcyjne BitMarket.pl

API transakcyjne BitMarket.pl API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy

Bardziej szczegółowo

Ethernet VPN tp. Twój œwiat. Ca³y œwiat.

Ethernet VPN tp. Twój œwiat. Ca³y œwiat. Ethernet VPN tp 19330 Twój œwiat. Ca³y œwiat. Efektywna komunikacja biznesowa pozwala na bardzo szybkie i bezpieczne po³¹czenie poszczególnych oddzia³ów firmy przez wirtualn¹ sieæ prywatn¹ (VPN) oraz zapewnia

Bardziej szczegółowo

III. INTERPOLACJA Ogólne zadanie interpolacji. Niech oznacza funkcjê zmiennej x zale n¹ od n + 1 parametrów tj.

III. INTERPOLACJA Ogólne zadanie interpolacji. Niech oznacza funkcjê zmiennej x zale n¹ od n + 1 parametrów tj. III. INTERPOLACJA 3.1. Ogólne zadanie interpolacji Niech oznacza funkcjê zmiennej x zale n¹ od n + 1 parametrów tj. Definicja 3.1. Zadanie interpolacji polega na okreœleniu parametrów tak, eby dla n +

Bardziej szczegółowo

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux. VLAN Ethernet Wstęp Ćwiczenie ilustruje w kolejnych krokach coraz bardziej złożone one struktury realizowane z użyciem wirtualnych sieci lokalnych. Urządzeniami, które będą realizowały wirtualne sieci

Bardziej szczegółowo

revati.pl Drukarnia internetowa Szybki kontakt z klientem Obs³uga zapytañ ofertowych rozwi¹zania dla poligrafii Na 100% procent wiêcej klientów

revati.pl Drukarnia internetowa Szybki kontakt z klientem Obs³uga zapytañ ofertowych rozwi¹zania dla poligrafii Na 100% procent wiêcej klientów revati.pl rozwi¹zania dla poligrafii Systemy do sprzeda y us³ug poligraficznych w internecie Drukarnia Szybki kontakt z klientem Obs³uga zapytañ ofertowych Na 100% procent wiêcej klientów drukarnia drukarnia

Bardziej szczegółowo

BEZPRZEWODOWA MYSZ OPTYCZNA FLAT PRO INSTRUKCJA OBS UGI

BEZPRZEWODOWA MYSZ OPTYCZNA FLAT PRO INSTRUKCJA OBS UGI BEZPRZEWODOWA MYSZ OPTYCZNA FLAT PRO INSTRUKCJA OBS UGI WSTÊP Szanowni Pañstwo! Gratulujemy zakupu profesjonalnej myszy bezprzewodowej marki IBOX. W myszy u yto nowoczesnej technologii radiowej. W przeciwieñstwie

Bardziej szczegółowo

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1

Spis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHICZNA 1 I N T E R F E J S W E BSERVICES NADAWANIE PAKIETÓW DO S YSTEMU MKP P RZEZ INTERNET D O K U M E N T A C J A T E C H N I C Z N A S T Y C Z E Ń 2 0 1 2 Spis treści 1. Wstęp... 2 2. Informacje ogólne... 2

Bardziej szczegółowo

Kabel do transmisji danych CA-42 krótka instrukcja instalacji

Kabel do transmisji danych CA-42 krótka instrukcja instalacji Kabel do transmisji danych CA-42 krótka instrukcja instalacji 9234594 Wydanie 2 Nokia, Nokia Connecting People i Pop-Port s± zarejestrowanymi znakami towarowymi firmy Nokia Corporation. Copyright 2005

Bardziej szczegółowo

Rys Mo liwe postacie funkcji w metodzie regula falsi

Rys Mo liwe postacie funkcji w metodzie regula falsi 5.3. Regula falsi i metoda siecznych 73 Rys. 5.1. Mo liwe postacie funkcji w metodzie regula falsi Rys. 5.2. Przypadek f (x), f (x) > w metodzie regula falsi 74 V. Równania nieliniowe i uk³ady równañ liniowych

Bardziej szczegółowo

(wymiar macierzy trójk¹tnej jest równy liczbie elementów na g³ównej przek¹tnej). Z twierdzen 1 > 0. Zatem dla zale noœci

(wymiar macierzy trójk¹tnej jest równy liczbie elementów na g³ównej przek¹tnej). Z twierdzen 1 > 0. Zatem dla zale noœci 56 Za³ó my, e twierdzenie jest prawdziwe dla macierzy dodatnio okreœlonej stopnia n 1. Macierz A dodatnio okreœlon¹ stopnia n mo na zapisaæ w postaci n 1 gdzie A n 1 oznacza macierz dodatnio okreœlon¹

Bardziej szczegółowo

Instrukcja obs³ugi optoizolowanego konwertera MCU-01 USB - RS232/485. Wersja 0.2

Instrukcja obs³ugi optoizolowanego konwertera MCU-01 USB - RS232/485. Wersja 0.2 Instrukcja obs³ugi optoizolowanego konwertera MCU-01 USB - S232/485 Wersja 0.2 41-250 CzeladŸ ul. Wojkowicka 21 tel.: +48 (32) 763-77-77 Fax.: 763-75 - 94 www.mikster.com mikster@mikster.com (13.10.2009r.)

Bardziej szczegółowo

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT Załącznik nr 1 Siedlce-Warszawa, dn. 16.06.2009 r. Opracowanie: Marek Faderewski (marekf@ipipan.waw.pl) Dariusz Mikułowski (darek@ii3.ap.siedlce.pl) INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT Przed

Bardziej szczegółowo

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...

Instalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania... Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł

Bardziej szczegółowo

Microsoft Management Console

Microsoft Management Console Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co

Bardziej szczegółowo

Protokół DNS. Aplikacja dnsquery

Protokół DNS. Aplikacja dnsquery Protokół DNS Domain Name System Aplikacja dnsquery dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Protokół DNS DNS, (ang.) Domain Name System.

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest sklepom internetowych zbudowanym w oparciu

Bardziej szczegółowo

AMPS Sterownik temperatur Instrukcja obs³ugi

AMPS Sterownik temperatur Instrukcja obs³ugi AMPS Sterownik temperatur Instrukcja obs³ugi Pod³¹czyæ sterownik do pr¹du. Instalacja powinna byæ przeprowadzona przez wykwalifikowany personel i tylko zgodnie z instrukcj¹. AMPS nie ponosi odpowiedzialnoœci

Bardziej szczegółowo

INSTRUKCJA U YTKOWNIKA DO KASY SHARP ER-A457P wersja oprogramowania: 27801RAR1C 4.11.6. PROGRAMOWANIE FORMATU RAPORTÓW, KROK (PGM2)

INSTRUKCJA U YTKOWNIKA DO KASY SHARP ER-A457P wersja oprogramowania: 27801RAR1C 4.11.6. PROGRAMOWANIE FORMATU RAPORTÓW, KROK (PGM2) ERRATA INSTRUKCJA U YTKOWNIKA DO KASY SHARP ER-A457P wersja oprogramowania: 27801RAR1C 4.11.6. PROGRAMOWANIE FORMATU RAPORTÓW, KROK (PGM2) Dla X = 2 (dodatkowe wiersze tabel). Zmienna Opis Kasowanie bufora

Bardziej szczegółowo

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: Sieci komputerowe Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeo, np.

Bardziej szczegółowo

Projektowanie bazy danych

Projektowanie bazy danych Projektowanie bazy danych Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeo wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana

Bardziej szczegółowo

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa Zamawiający: Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej 00-662 Warszawa, ul. Koszykowa 75 Przedmiot zamówienia: Produkcja Interaktywnej gry matematycznej Nr postępowania: WMiNI-39/44/AM/13

Bardziej szczegółowo

Po³¹czenie iphone'a/ipad a do Smart Multishare USB

Po³¹czenie iphone'a/ipad a do Smart Multishare USB INSTRUKCJA OBSLUGI Po³¹czenie iphone'a/ipad a do Smart Multishare USB Smart Multishare USB jest produktem, który pozwala Ci bezprzewodowo transmitowaæ elementy takie jak zdjêcia, filmy video, muzykê i

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to dedykowane jest internetowemu menedżerowi sprzedaży BaseLinker.

Bardziej szczegółowo

Wytyczne Województwa Wielkopolskiego

Wytyczne Województwa Wielkopolskiego 5. Wytyczne Województwa Wielkopolskiego Projekt wspó³finansowany przez Uniê Europejsk¹ z Europejskiego Funduszu Rozwoju Regionalnego oraz Bud etu Pañstwa w ramach Wielkopolskiego Regionalnego Programu

Bardziej szczegółowo

WZORU UŻYTKOWEGO EGZEMPLARZ ARCHIWALNY. d2)opis OCHRONNY. (19) PL (n)62894. Centralny Instytut Ochrony Pracy, Warszawa, PL

WZORU UŻYTKOWEGO EGZEMPLARZ ARCHIWALNY. d2)opis OCHRONNY. (19) PL (n)62894. Centralny Instytut Ochrony Pracy, Warszawa, PL RZECZPOSPOLITA POLSKA Urząd Patentowy Rzeczypospolitej Polskiej d2)opis OCHRONNY WZORU UŻYTKOWEGO (21) Numer zgłoszenia: 112772 (22) Data zgłoszenia: 29.11.2001 EGZEMPLARZ ARCHIWALNY (19) PL (n)62894 (13)

Bardziej szczegółowo

Sieci komputerowe. Definicja. Elementy 2012-05-24

Sieci komputerowe. Definicja. Elementy 2012-05-24 Sieci komputerowe Wprowadzenie dr inż. Maciej Piechowiak Definicja grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów Elementy Cztery elementy

Bardziej szczegółowo

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ). {tab=opis} Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ). Aplikacja umożliwia wygodne przeglądanie, wyszukiwanie

Bardziej szczegółowo

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania

Bardziej szczegółowo

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna

Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI Tworzenie wielopoziomowych konfiguracji sieci stanowisk asix z separacją segmentów sieci - funkcja POMOST Pomoc techniczna Dok. Nr PLP0009 Wersja: 24-11-2005

Bardziej szczegółowo

Konfiguracja OpenVPN

Konfiguracja OpenVPN Konfiguracja OpenVPN Przed rozpoczęciem konfiguracji należy podjąć decyzję w jakim trybie program ma utworzyć tunel. Zasadniczo umożliwia on połączenie zdalnych lokalizacji w warstwie drugiej lub trzeciej

Bardziej szczegółowo

ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009.

ER RATA do ksi¹ ki Symfonia C++ Stan dard. wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. ER RATA do ksi¹ ki "Symfonia C++ Stan dard". wydanie 3. (Zawieraj¹ca tak e czysto kosmetyczne poprawki) Sporz¹dzona 4 paÿdziernika 2009. Strona wiersz G - od góry D - od do³u Jest Powinno byæ 1 6 D nadzieje

Bardziej szczegółowo

System kontroli wersji SVN

System kontroli wersji SVN System kontroli wersji SVN Co to jest system kontroli wersji Wszędzie tam, gdzie nad jednym projektem pracuje wiele osób, zastosowanie znajduje system kontroli wersji. System, zainstalowany na serwerze,

Bardziej szczegółowo

LIMATHERM SENSOR Sp. z o.o.

LIMATHERM SENSOR Sp. z o.o. INSTRUKCJA OBS UGI TERMOMETR CYFROWY TES-1312 LIMATHERM SENSOR Sp. z o.o. 34-600 Limanowa ul. Tarnowska 1 tel. (18) 337 60 59, 337 60 96, fax (18) 337 64 34 internet: www.limatherm.pl, e-mail: akp@limatherm.pl

Bardziej szczegółowo

PRZEPIĘCIA CZY TO JEST GROźNE?

PRZEPIĘCIA CZY TO JEST GROźNE? O c h r o n a p r z e d z a g r o ż e n i a m i PRZEPIĘCIA CZY TO JEST GROźNE? François Drouin Przepiêcie to jest taka wartoœæ napiêcia, która w krótkim czasie (poni ej 1 ms) mo e osi¹gn¹æ amplitudê nawet

Bardziej szczegółowo

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o. Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o. Ostateczna. Grontmij Polska Pozna, 12.10.12 Autoryzacja Title : Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp.

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych dr hab. inż. Krzysztof Patan, prof. PWSZ Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa w Głogowie k.patan@issi.uz.zgora.pl Współczesny system komputerowy System

Bardziej szczegółowo

Wartości domyślne, szablony funkcji i klas

Wartości domyślne, szablony funkcji i klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Bazy Danych. Laboratorium 2

Bazy Danych. Laboratorium 2 Bazy Danych Zadania i problemy techniczno-inżynieryjne oraz informatyczne dla systemów operacyjnych, połączeń i konfiguracji baz danych do pracy w biurze, sieci oraz z internetem. pdf Laboratorium 2 Opracować

Bardziej szczegółowo

Base 6T - widok z przodu

Base 6T - widok z przodu PL ase 6T - widok z przodu JP JP10 JP9 JP8 JP7 X3 JP14 JP12 NTC 40 50 JP6 JP5 JP4 JP3 JP2 JP1 30 60 R26 9 10 3 COMM JP13 TEST 4 18 2 12 1 17 8 X1 X7 X10 X4 X8 POMP LL UX LINE 16 7 5 6 15 13 14 2 ase 6T

Bardziej szczegółowo

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji Projekt współfinansowany ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka

Bardziej szczegółowo

BEZPRZEWODOWA ZESTAW OPTYCZNY PHANTOM INSTRUKCJA OBS UGI

BEZPRZEWODOWA ZESTAW OPTYCZNY PHANTOM INSTRUKCJA OBS UGI BEZPRZEWODOWA ZESTAW OPTYCZNY PHANTOM INSTRUKCJA OBS UGI WSTÊP Szanowni Pañstwo! Gratulujemy zakupu profesjonalnego zestawu bezprzewodowego marki IBOX. W zestawie zastosowano nowoczesn¹ technologie radiow¹.

Bardziej szczegółowo

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 11 Zastosowanie PHP do programowania aplikacji baz danych Oracle Wsparcie programowania w PHP baz danych Oracle Oprócz możliwego

Bardziej szczegółowo

Modem ADSL2. Z portem USB i Ethernet. Szybki start ADSL2MUE(EU/LA) ZawartoϾ zestawu. Modem ADSL2

Modem ADSL2. Z portem USB i Ethernet. Szybki start ADSL2MUE(EU/LA) Zawartoœæ zestawu. Modem ADSL2 ivision of isco Systems, Inc. Zawartoœæ zestawu Modem SL2 Zasilacz sieciowy Kabel US thernetowy kabel sieciowy (Kat 5) Kabel telefoniczny RJ-11 Instrukcja obs³ugi i sterowniki na -Rom Instrukcja Szybki

Bardziej szczegółowo

Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach?

Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach? Czy przedsiêbiorstwo, którym zarz¹dzasz, intensywnie siê rozwija, ma wiele oddzia³ów lub kolejne lokalizacje w planach? Czy masz niedosyt informacji niezbêdnych do tego, by mieæ pe³en komfort w podejmowaniu

Bardziej szczegółowo

Instrukcja U ytkownika Systemu Antyplagiatowego Plagiat.pl

Instrukcja U ytkownika Systemu Antyplagiatowego Plagiat.pl Instrukcja U ytkownika Systemu Antyplagiatowego Plagiat.pl System Plagiat.pl jest programem komputerowym s³u ¹cym do porównywania dokumentów tekstowych. Wytypowani przez W³adze Uczelni U ytkownicy otrzymuj¹

Bardziej szczegółowo

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM PROGRAM INWENTARYZACJI Poznań 2011 Spis treści 1. WSTĘP...4 2. SPIS INWENTARZA (EWIDENCJA)...5 3. STAŁE UBYTKI...7 4. INTERPRETACJA ZAŁĄCZNIKÓW

Bardziej szczegółowo

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x Wersja 02 Styczeń 2016 Centrum Elektronicznych Usług Płatniczych eservice Sp. z o.o. Spis treści 1. Wstęp... 3 1.1. Przeznaczenie dokumentu...

Bardziej szczegółowo

System Centrala. System Centrala - opis systemu. System Centralnego Zarz±dzania "Magnat Centrala" stanowi istotne

System Centrala. System Centrala - opis systemu. System Centralnego Zarz±dzania Magnat Centrala stanowi istotne System Centrala System Centrala - opis systemu System Centralnego Zarz±dzania "Magnat Centrala" stanowi istotne rozwiniêcie funkcjonalne Systemu Obs³ugi Supermarketu Magnat. Pozwala na ³atw± organizacjê

Bardziej szczegółowo

InsERT GT Własne COM 1.0

InsERT GT Własne COM 1.0 InsERT GT Własne COM 1.0 Autor: Jarosław Kolasa, InsERT Wstęp... 2 Dołączanie zestawień własnych do systemu InsERT GT... 2 Sposób współpracy rozszerzeń z systemem InsERT GT... 2 Rozszerzenia standardowe

Bardziej szczegółowo

Stanowisko Rzecznika Finansowego i Prezesa Urzędu Ochrony Konkurencji i Konsumentów w sprawie interpretacji art. 49 ustawy o kredycie konsumenckim

Stanowisko Rzecznika Finansowego i Prezesa Urzędu Ochrony Konkurencji i Konsumentów w sprawie interpretacji art. 49 ustawy o kredycie konsumenckim Prezes Urzędu Ochrony Konkurencji i Konsumentów Warszawa, 16 maja 2016 r. Stanowisko Rzecznika Finansowego i Prezesa Urzędu Ochrony Konkurencji i Konsumentów w sprawie interpretacji art. 49 ustawy o kredycie

Bardziej szczegółowo

Systemy mikroprocesorowe - projekt

Systemy mikroprocesorowe - projekt Politechnika Wrocławska Systemy mikroprocesorowe - projekt Modbus master (Linux, Qt) Prowadzący: dr inż. Marek Wnuk Opracował: Artur Papuda Elektronika, ARR IV rok 1. Wstępne założenia projektu Moje zadanie

Bardziej szczegółowo

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy) Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy) 1. Wejście na stronę http://www.officemedia.com.pl strona główną Office Media 2. Logowanie do zakupowej części serwisu. Login i hasło należy

Bardziej szczegółowo

L A K M A R. Rega³y DE LAKMAR

L A K M A R. Rega³y DE LAKMAR Rega³y DE LAKMAR Strona 2 I. KONSTRUKCJA REGA ÓW 7 1 2 8 3 4 1 5 6 Rys. 1. Rega³ przyœcienny: 1 noga, 2 ty³, 3 wspornik pó³ki, 4pó³ka, 5 stopka, 6 os³ona dolna, 7 zaœlepka, 8 os³ona górna 1 2 3 4 9 8 1

Bardziej szczegółowo

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy Pierwsze kroki Krok 1. Uzupełnienie danych własnej firmy Przed rozpoczęciem pracy z programem, należy uzupełnić informacje o własnej firmie. Odbywa się to dokładnie tak samo, jak uzupełnianie informacji

Bardziej szczegółowo

1. CHARAKTERYSTYKA TECHNICZNA

1. CHARAKTERYSTYKA TECHNICZNA 1. CHARAKTERYSTYKA TECHNICZNA Nazwa maszyny, urz¹dzenia Producent Typ 4. Rok produkcji Nr fabryczny 6. masa (ciê ar) kg Moc zainstalowana 7a. Napiêcie zasilania Iloœæ silników el. Typy i moc silników uwaga

Bardziej szczegółowo

Charakterystyka systemów plików

Charakterystyka systemów plików Charakterystyka systemów plików Systemy plików są rozwijane wraz z systemami operacyjnymi. Windows wspiera systemy FAT oraz system NTFS. Różnią się one sposobem przechowywania informacji o plikach, ale

Bardziej szczegółowo

NOTA TECHNICZNA INTERFEJSY DIAGNOSTYCZNE

NOTA TECHNICZNA INTERFEJSY DIAGNOSTYCZNE NOTA TECHNICZNA INTERFEJSY DIAGNOSTYCZNE 1. INTERFEJS DIAGNOSTYCZNY AE171 2. INTERFEJS DIAGNOSTYCZNY AE171U 3. INTERFEJS DIAGNOSTYCZNY AE171U/AMP 4. INTERFEJS DIAGNOSTYCZNY AE171WI-FI 5. ADAPTER AEKF001AD

Bardziej szczegółowo

Modelowanie œrodowiska 3D z danych pomiarowych**

Modelowanie œrodowiska 3D z danych pomiarowych** AUTOMATYKA 2005 Tom 9 Zeszyt 3 Jacek Nowakowski *, Daniel Kaczorowski * Modelowanie œrodowiska 3D z danych pomiarowych** 1. Wprowadzenie Jednym z obszarów mo liwego wykorzystania symulacji komputerowej

Bardziej szczegółowo

PODNOSZENIE EFEKTYWNOŒCI PRZEDSIÊBIORSTWA - PROJEKTOWANIE PROCESÓW

PODNOSZENIE EFEKTYWNOŒCI PRZEDSIÊBIORSTWA - PROJEKTOWANIE PROCESÓW BAROMETR REGIONALNY 33 PODNOSZENIE EFEKTYWNOŒCI PRZEDSIÊBIORSTWA - PROJEKTOWANIE PROCESÓW mgr in. Adam Piekara, Doradca w programie EQUAL Podstaw¹ niniejszego artyku³u jest przyjêcie za- ³o enia, e ka

Bardziej szczegółowo

STRUKTURA MENU STRUKTURA MENU

STRUKTURA MENU STRUKTURA MENU ZA CZNIKI STRUKTURA MENU Po wywo³aniu systemu SM-BOSS (poprzez napisanie BOSS i wciœniêcie klawisza Enter) na ekranie zobaczymy g³ówne menu systemu. Standardowo sk³ada siê ono z pozycji, które pozwalaj¹

Bardziej szczegółowo

BUS - Kabel. Do po³¹czenia interfejsów magistrali TAC - BUS BK 1 BK 10 BK 40-1

BUS - Kabel. Do po³¹czenia interfejsów magistrali TAC - BUS BK 1 BK 10 BK 40-1 BUS - Kabel Do po³¹czenia interfejsów magistrali TAC - BUS BK 1 BK 10 BK 40-1 Nr katalogowy 719 001 351 nr katalogowy 7 719 001 350 nr katalogowy 7 719 002 012 6 720 604 442 (03.06) PL (94862928/8368-4357B)

Bardziej szczegółowo

Stan prac w zakresie wdrożenia systemów operacyjnych: NCTS2, AIS/INTRASTAT, AES, AIS/ICS i AIS/IMPORT. Departament Ceł, Ministerstwo Finansów

Stan prac w zakresie wdrożenia systemów operacyjnych: NCTS2, AIS/INTRASTAT, AES, AIS/ICS i AIS/IMPORT. Departament Ceł, Ministerstwo Finansów Stan prac w zakresie wdrożenia systemów operacyjnych: NCTS2, AIS/INTRASTAT, AES, AIS/ICS i AIS/IMPORT Departament Ceł, Ministerstwo Finansów Usługa e-tranzyt System NCTS 2 Aktualny stan wdrożenia Ogólnopolskie

Bardziej szczegółowo

Elementy i funkcjonalno

Elementy i funkcjonalno Konsola operatora Konsola operatora zapewnia dost p do najwa niejszych informacji o po czeniu i aktualnym statusie abonentów, dzi ki czemu u atwia przekazywanie po cze. Konsola przewy sza swoimi mo liwo

Bardziej szczegółowo

Zdalne odnawianie certyfikatów do SWI

Zdalne odnawianie certyfikatów do SWI Zdalne odnawianie certyfikatów do SWI Instrukcja użytkownika Wersja 1.0 Strona 1 Spis treści Wstęp... 3 Dostęp do systemu... 4 Wymagania systemowe... 5 Instalacja certyfikatu użytkownika... 8 Sprawdzenie

Bardziej szczegółowo

Instrukcja obs³ugi panelu dealera

Instrukcja obs³ugi panelu dealera Instrukcja obs³ugi panelu dealera strona 2: logowanie strona 3: edycja profilu strona 5: dodawanie filmów strona 6: dostêpne pojazdy strona 8: pojazdy demonstracyjne Kraków, 2011 proszê wpisaæ login i

Bardziej szczegółowo

Us uga jedna za wszystkie. www.tp.pl 9393

Us uga jedna za wszystkie. www.tp.pl 9393 Us uga jedna za wszystkie Dostêp do Internetu DSL tp Internet nie jest jedynym niezbêdnym narzêdziem w Twojej codziennej pracy. Wiemy o tym i rozumiemy Twoje potrzeby, dlatego przygotowaliœmy specjaln¹

Bardziej szczegółowo

PREZENTACJA INFORMACJI FINANSOWEJ w analizach i modelowaniu finansowym. - dane z rynków finansowych DANE RÓD OWE

PREZENTACJA INFORMACJI FINANSOWEJ w analizach i modelowaniu finansowym. - dane z rynków finansowych DANE RÓD OWE DANE RÓD OWE PREZENTACJA INFORMACJI FINANSOWEJ - dane z rynków finansowych - w formie baz danych - w formie tabel na stronach internetowych - w formie plików tekstowych o uk³adzie kolumnowym - w formie

Bardziej szczegółowo

OmniTouch 8400 Instant Communications Suite 4980 Softphone

OmniTouch 8400 Instant Communications Suite 4980 Softphone OmniTouch 8400 Instant Communications Suite 4980 Softphone Przewodnik informacyjny R6.0 Czym jest aplikacja 4980 Softphone? Działająca w systemie Windows aplikacja kliencka Alcatel-Lucent 4980 Softphone

Bardziej szczegółowo

Instrukcja programu PControl Powiadowmienia.

Instrukcja programu PControl Powiadowmienia. 1. Podłączenie zestawu GSM. Instrukcja programu PControl Powiadowmienia. Pierwszym krokiem w celu uruchomienia i poprawnej pracy aplikacji jest podłączenie zestawu GSM. Zestaw należy podłączyć zgodnie

Bardziej szczegółowo

Elementy cyfrowe i układy logiczne

Elementy cyfrowe i układy logiczne Elementy cyfrowe i układy logiczne Wykład Legenda Zezwolenie Dekoder, koder Demultiplekser, multiplekser 2 Operacja zezwolenia Przykład: zamodelować podsystem elektroniczny samochodu do sterowania urządzeniami:

Bardziej szczegółowo

Diody danych. grzegorz.cempla@solidex.com.pl

Diody danych. grzegorz.cempla@solidex.com.pl Diody danych grzegorz.cempla@solidex.com.pl Na początek... Proponuję zapomnieć na chwilę, że transmisja danych implikuje potwierdzenia pakietów. Proponuję nie odnosić tematu prezentacji do ogólnych zastosowań

Bardziej szczegółowo

Sieci komputerowe cel

Sieci komputerowe cel Sieci komputerowe cel współuŝytkowanie programów i plików; współuŝytkowanie innych zasobów: drukarek, ploterów, pamięci masowych, itd. współuŝytkowanie baz danych; ograniczenie wydatków na zakup stacji

Bardziej szczegółowo

aplikacja hostingowa neostrada tp

aplikacja hostingowa neostrada tp aplikacja hostingowa neostrada tp materia y informacyjne dla u ytkownika instrukcja pos ugiwania si aplikacjà hostingowà Twój świat. Cały świat. WST P Niniejszy dokument przeznaczony jest dla U ytkowników

Bardziej szczegółowo

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012 Zawód: technik teleinformatyk Symbol cyfrowy zawodu: 312[02] Numer zadania: 6 Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu 312[02]-06-122 Czas trwania egzaminu: 240 minut

Bardziej szczegółowo

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET PoniŜszy dokument zawiera opis konfiguracji programu STEP7 dla sterowników SIMATIC S7 300/S7 400, w celu stworzenia komunikacji między dwoma stacjami S7 300 za pomocą sieci Industrial Ethernet, protokołu

Bardziej szczegółowo

Warszawa, 08.01.2016 r.

Warszawa, 08.01.2016 r. Warszawa, 08.01.2016 r. INSTRUKCJA KORZYSTANIA Z USŁUGI POWIADOMIENIA SMS W SYSTEMIE E25 BANKU BPS S.A. KRS 0000069229, NIP 896-00-01-959, kapitał zakładowy w wysokości 354 096 542,00 złotych, który został

Bardziej szczegółowo

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT Spis treści Instrukcja użytkownika systemu Ognivo2... 3 Opis... 3 Konfiguracja programu... 4 Rejestracja bibliotek narzędziowych... 4 Konfiguracja

Bardziej szczegółowo

OG OSZENIE O KONKURSIE

OG OSZENIE O KONKURSIE UNIA EUROPEJSKA Publikacja Suplementu do Dziennika Urzêdowego Wspólnot Europejskich 2, rue Mercier, L-2985 Luxembourg Fax: (+352) 29 29 44 619, (+352) 29 29 44 623, (+352) 29 29 42 670 E-mail: mp-ojs@opoce.cec.eu.int

Bardziej szczegółowo

PERSON Kraków 2002.11.27

PERSON Kraków 2002.11.27 PERSON Kraków 2002.11.27 SPIS TREŚCI 1 INSTALACJA...2 2 PRACA Z PROGRAMEM...3 3. ZAKOŃCZENIE PRACY...4 1 1 Instalacja Aplikacja Person pracuje w połączeniu z czytnikiem personalizacyjnym Mifare firmy ASEC

Bardziej szczegółowo

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012 Zawód: technik teleinformatyk Symbol cyfrowy zawodu: 312[02] Numer zadania: 1 Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu 312[02]-01-122 Czas trwania egzaminu: 240 minut

Bardziej szczegółowo

Co zrobić, jeśli uważasz, że decyzja w sprawie zasiłku mieszkaniowego lub zasiłku na podatek lokalny jest niewłaściwa

Co zrobić, jeśli uważasz, że decyzja w sprawie zasiłku mieszkaniowego lub zasiłku na podatek lokalny jest niewłaściwa Polish Co zrobić, jeśli uważasz, że decyzja w sprawie zasiłku mieszkaniowego lub zasiłku na podatek lokalny jest niewłaściwa (What to do if you think the decision about your Housing Benefit or Council

Bardziej szczegółowo

3.2 Warunki meteorologiczne

3.2 Warunki meteorologiczne Fundacja ARMAAG Raport 1999 3.2 Warunki meteorologiczne Pomiary podstawowych elementów meteorologicznych prowadzono we wszystkich stacjach lokalnych sieci ARMAAG, równolegle z pomiarami stê eñ substancji

Bardziej szczegółowo

Konfigurator opisuje proces instalacji i konfiguracji karty sieciowej bezprzewodowej D-Link DWL-520+ w systemach /2000/XP /

Konfigurator opisuje proces instalacji i konfiguracji karty sieciowej bezprzewodowej D-Link DWL-520+ w systemach /2000/XP / KONFIGURATOR Konfigurator opisuje proces instalacji i konfiguracji karty sieciowej bezprzewodowej D-Link DWL-520+ w systemach /2000/XP / 1. Instalowanie sterowników karty sieciowej. Podczas pierwszej instalacji

Bardziej szczegółowo

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI 1. CO TO JEST ELEKTRONICZNE BIURO OBSŁUGI UCZESTNIKA (EBOU) Elektroniczne Biuro Obsługi Uczestnika to platforma umożliwiająca

Bardziej szczegółowo

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Symfonia Produkcja Instrukcja instalacji. Wersja 2013 Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy

Bardziej szczegółowo

ULTRAFLOW Typ 65-S /65-R

ULTRAFLOW Typ 65-S /65-R Instrukcja monta u ULTRAFLOW Typ 65-S /65-R Kamstrup Sp. zo.o., ul. Borsucza 40, 02-213 Warszawa TEL.: +(22) 577 11 00 FAX.: +(22) 577 11 11 Email: biuro@kamstrup.pl WEB: www.kamstrup.pl 1. Monta W nowych

Bardziej szczegółowo

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012

ARKUSZ EGZAMINACYJNY ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJ CEGO KWALIFIKACJE ZAWODOWE CZERWIEC 2012 Zawód: technik teleinformatyk Symbol cyfrowy zawodu: 312[02] Numer zadania: 2 Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu 312[02]-02-122 Czas trwania egzaminu: 240 minut

Bardziej szczegółowo

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA Wersja 5.1.9 Spis treści Rozdział 1 1.1 1.1.1 1.1.2 1.2 1.3 1.4 1.5 I Konfiguracja... 1-1 OID świadczeniodawcy... 1-2 Dodanie... instytucji zewnętrznej 1-4 Dodanie... zlecenia 1-11 Pobranie... materiału

Bardziej szczegółowo

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL

INFORMATOR TECHNICZNY WONDERWARE. Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL Informator Techniczny nr 68 19-01-2004 INFORMATOR TECHNICZNY WONDERWARE Konfiguracja komputera klienckiego do łączenia się z serwerem IndustrialSQL W celu podłączenie komputera klienckiego do serwera IndustrialSQL,

Bardziej szczegółowo

ZA CZNIK F: TABELE KODÓW

ZA CZNIK F: TABELE KODÓW ZA CZNIK F: TABELE KODÓW W za³¹czniku tym przedstawiamy miejsce i sposób wprowadzania kodów u ywanych w wielu modu³ach systemu SM-BOSS. SYMBOLE BRAN Bran e dotycz¹ dostawców i odbiorców. Umo liwiaj¹ wprowadzenie

Bardziej szczegółowo