next up previous contents
Next: A socketokkal kapcsolatos Up: Hálózatokkal kapcsolatos könyvtári Previous: Hostnévrol IP-címre transzformáció

Hálózati szolgáltatások adatbázisa

A szabványos szerverek (mint például az FTP vagy a TELNET) a hálózatban minden hoston a megfelelo "jól ismert" porton várakoznak a kliensek rákapcsolódására. A "jól ismert" port sorszámát általában nem égetik bele a szerverbe, hanem egy külso adatbázisban tárolják (a /etc/services fileban), a programok onnan kérdezhetik le. Az adatbázis lekérdezését egy getservbyname() könyvtári függvénnyel lehet elvégezni. Ez egy servent strukturára mutató pointerrel tér vissza. A struktura szerkezete a következo:

     struct servent {
          char *s_name; /* A szolgaltatas hivatalos neve */
          char **s_aliases; /* A szolgaltatas egyeb hasznalt nevei */
          int s_port; /* A port sorszama, ahol a szervernek a
                         a kliensekre kell varnia. Network byte
                         orderben */
          char *s_proto; /* A hasznalando protokoll */
     };

Ha például a TCP alapú FTP protokollt akarjuk használni, akkor a következoképp kell a fent említett rutint használni:

     struct servent *sp;
     struct sockaddr_in serv_addr;

     ...

     /* serv_addr struktura kitoltese */
     sp=getservbyname("ftp","tcp");
     serv_addr.sin_port=sp->s_port;
     /* ... */



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996