Redes con Linux Programación - servidor y función de la información del cliente

  

Informática Noticias de la tienda

función de transferencia 1 byte en la red del tipo anterior tiene muchas máquinas que representan el orden de bytes de datos son diferentes, tales como la dirección de byte bajo de memoria de chips i386 la gama baja, byte alto en el extremo superior, y el chip alfa opuesto. a fin de unificar bajo Linux, un funciones de conversión byte especiales. unsigned htonl largo int (unsigned long int hostlong) unsigned short int htons (unisgned hostshort int corto ) unsigned long int ntohl (unsigned long int netlong) unsigned short ntohs int (unsigned short netshort int) en la función de cuatro transferencia, h para el anfitrión, n representan el significado del representante network.s una función representativa de largo es corto l los datos largos en en esta máquina es mucho tiempo en la red. varias otras funciones de significado casi 2 convertir IP y nombre de dominio marcar una máquina en la red puede utilizar IP o el nombre de dominio. Entonces, ¿cómo convertimos que? hostent struct * gethostbyname (const char * nombre de host) hostent struct * gethostbyaddr (const char * addr, int len, tipo int) en allí hostent estructura de Yi estructura hostent {char * h_name; /* nombre oficial del host * /char * h_aliases; /* alias para el host * /int h_addrtype; /* anfitrión tipo de dirección AF_INET * /int h_length; /* dirección de host de longitud para IP4 32 es de 4 bytes * /char ** h_addr_list; /* lista de direcciones de host IP * /} #define h_addr h_addr_list [0] /* la primera dirección IP del anfitrión * /gethostbyname puede ser nombre de la máquina (como Linux. yessun.com) se convierte en una estructura de puntero. en esta estructura, la información almacenada dentro de gethostbyaddr dominio puede ser una dirección IP de 32 bits (estructura C0A80001) se convierte en un puntero. ambas funciones devuelven NULL cuando h_errno dispuesto falló y variable de error, llamar h_strerror () se puede obtener información detallada del error e IP 3 cadena de caracteres de conversión IP de 32 bits. en el anterior utilizamos la red IP son digitales más puntos (192.168.0.1) de configuración, y en que con la in_addr estructura struct 32-bit IP, 32 por encima de que IP (C0A80001) se convierte en la 192.168.0.1 podemos utilizar los dos siguientes Número int inet_aton (char const * cp, estructura in_addr * inp) char * inet_ntoa (struct in_addr en) función dentro de una representa ascii n representativa de red. Abcd muestra una primera función de convertir IP IP, almacenamiento de 32 bits, en inp puntero dentro. el segundo es que ser convertidos a formato de 32 bits ABCD IP. 4 funciones en el programa de información de servicios de red que queremos conocer la información .IP puerto y servicio. esta vez podemos utilizar la siguiente función int getsockname (int sockfd, struct sockaddr * localaddr, int * addrlen) int getpeername (int sockfd, struct sockaddr * peeraddr, int * addrlen) struct servent * getservbyname (const char * ServName, char const * protoname) struct servent * getservbyport (int puerto, const char * protoname) struct {char * servent s_name; /* nombre oficial del servicio * /char ** s_aliases; /* lista de alias * /int s_port; /* número de puerto * /char * s_proto; /* protocolo de usar * /} en general, que rara vez se utilizan estas funciones. corresponderse con el cliente , Cuando se quiere obtener se pueden obtener utilizando el número de puerto del número de puerto asignado por el sistema en una llamada de conexión exitosa para el servidor, utilizamos INADDR_ANY después del llenado, con el fin de obtener una conexión IP, podemos obtener la llamada IP acepta el uso exitoso dirección. hay muchos en los servicios de puerto predeterminados y de red, como el puerto 21 pares ftp80 corresponden WWW. con el fin de obtener el número de puerto de servicio especificado podemos llamar a la cuarta función, por el contrario, con el fin de obtener el número de puerto puede llamar a la tercera función. 5 un ejemplo

CÓDIGO:

# include < stdlib.h > # include < stdio.h > # include < errno.h > # include < string.h > # include < unistd.h > # include < netdb.h > # include < sys /socket.h > # include < netinet /in.h > # include < sys /types.h > # include < arpa /inet.h > int main (int argc, char ** argv) {addr sockaddr_in struct; struct hostent * anfitrión; char ** alias, si (argc < 2) {fprintf (stderr, " Uso:% s hostname

Copyright © Conocimiento de Windows All Rights Reserved