Теория и практика программирования на Си в Unix




- Построение сетевых адресов - часть 2


main(argc, argv) int argc; char **argv; { struct servent *servp; /* структура службы */ long int i; /* счетчик цикла */ /* цикл по аргументам = именам служб */ for (i = 1; i<argc; i++) { if ( (servp = getservbyname(argv[i], "tcp")) == NULL) && (servp = getservbyname(argv[i], "udp")) == NULL) printf("**service %s non trouve**\n", argv[i]); else { /* обратите внимание на номер порта : значение считывается в формате сети ; используйте htonl() */ printf("service %s port: %d protocole: %s \n", servp->s_name, htonl(servp->s_port), servp->s_proto); } } }

- Адрес, связанный с сокетом
int getsockname (sock, адрес, addrlen) int sock; /*сокет-дескриптор*/
struct sockaddr *адрес; /*указатель адреса*/
int *addrlen; /*длина адреса*/


Этот примитив позволяет найти адрес порта, присвоенный сис- темой.




Содержание  Назад  Вперед