Funciones de TCP y de programación pasos detallados

  

paso de programación del servidor TCP es generalmente

1, para crear un socket, una toma de función ();

2, para establecer el atributo socket, una función setsockopt (); * opcional

3, información de enlace de la dirección IP y el puerto de la toma de corriente, una función bind ();

4, abra el monitor, con la función de escuchar ();

5, conectado para recibir al cliente servido por la función de aceptar ();

6, enviar y recibir datos, un envío de función () y recv (), se read () y write ();

7, desactivar las conexiones de red;

8, cerca del monitor;

cliente TCP programado pasos generales son:

1, crear un socket , una toma de función ();

2, para establecer el atributo socket, una setsockopt función (); * opcional

3, información de enlace de la dirección IP y el puerto a la toma, con la función de * atributos opcionales

4, se proporciona para conectar el otro lado de la dirección IP y el puerto;; bind ()

5, conectado con el servidor, utilizando la función de conectar ();

6, enviar y recibir datos, un envío de función () y recv (), o un read () y write ();

7, desactivar las conexiones de red;

UDP El proceso del servidor es pasos generales:

1, para crear un socket, una toma de función ();

2, para establecer el atributo socket, una setsockopt función (); * Opcional

3, información de enlace de la dirección IP y el puerto de la toma de corriente, una función bind ()

4, se recibe los datos de ciclo, un recvfrom función ();

5, red cerrada conexión;

cliente UDP programado pasos generales son:

1, para crear un socket, una toma de función ();

2, para establecer el atributo socket, una función setsockopt (); * opcional

3, la información de la dirección IP y el puerto a la toma de la unión, con la función bind (); * opcional

4, el otro conjunto de dirección de IP y el puerto otras propiedades;

5, los datos de transmisión, un sendto función ();

6, apagar las conexiones de red;

comandos de red comunes: comando netstat netstat se utiliza para mostrar información .netstat conectarse a la red, tablas de rutas y estadísticas de la interfaz de red, etc, hay muchas opciones que utilizamos la opción -an se utiliza para mostrar el estado detallado de la red. en cuanto a las otras opciones que podemos utilizar para ayudar a

telnettelnet es un control remoto para Orden, pero podemos utilizar este programa para depurar nuestros programas de servidor, como nuestro programa de servidor está escuchando el puerto 8888, podemos utilizar telnet localhost 8888 para ver el estado del servidor de

1 estructura de datos, de direcciones estructura struct sockaddr_in {short sin_family int; * familia /dirección generalmente AF-INET * /unsigned short int sin_port; /* número de puerto * /struct in_addr sin_addr; /* dirección IP * /unsigned sin_zero char [8]; /* relleno 0 para sostener llenos del mismo tamaño usando struct sockaddr Memset () o bzero () * /};

sockaddr struct {unsigned short sa_family; /* familia de direcciones, AF_xxx * /char sa_data [14]; /* 14 bytes dirección de protocolo * /

};

2, DNS estructura struct {char * hostent h_name; /* nombre oficial dominio de host * /char ** h_aliases; /* una el final de la matriz de acoger NULL alias * /int h_addrtype; /* tipo de dirección de retorno, en el entorno de Internet AF-INET * /int h_length; /* longitud del byte de dirección * /char ** h_addr_list; /* en una Toda la dirección final de la matriz 0, incluyendo el anfitrión * /};

funciones de operación

1, socket:

Crea socket descriptor

int socket (int dominio, tipo int, protocolo int); domain = AF_INET , el tipo de socket, type = SOCK_STREAM SOCK_DGRAM o, respectivamente, las conexiones TCP y UDP; protocol = 0.

y devuelve un descriptor de socket número entero.

2.bind:

y usted será un descriptor de socket asociado a un puerto de la máquina (sólo servidor)

int bind (int sockfd, struct sockaddr * my_addr, int addrlen);

my_addr sockfd es un descriptor de socket contiene un puntero al tipo de información de puntero sockaddr la dirección IP y número de puerto local; addrlen = sizeof (struct sockaddr). Devuelve: 0 = éxito; fallido = -1, errno = número de error. Lo siguiente puede ser asignado automáticamente la dirección IP local y la obtención de un número de puerto aleatorio no está ocupada: my_addr.sin_port = 0; /* Sistema de seleccionar aleatoriamente un número de puerto no utilizado * /my_addr.sin_addr.s_addr = INADDR_ANY; /* rellene la dirección IP del * /

3.Conecte:

para establecer una conexión TCP (para el cliente) y el servidor remoto int connect (int sockfd, struct sockaddr * serv_addr , int addrlen); sockfd es objeto de servidor de destino sockt es un puntero a una serv_addr descriptor de dirección IP y número de puerto contenía. Devuelve: 0 = éxito; fallido = -1, errno = número de error.

4, Escucha: después

escuchar las solicitudes de servicio, a bind () int listen (sockfd int, int atraso); sockfd zócalo llamada al sistema devuelve un descriptor de socket; atraso especificar el número máximo permitido de las solicitudes en la cola de solicitudes 20 de forma predeterminada. Devuelve: 0 = éxito; fallido = -1, errno = número de error.

5.accept:

acepta las peticiones de los clientes int aceptar (int sockfd, * addr vacío, addrlen int *); sockfd está escuchando descriptor de socket, direc es un puntero sockaddr_in variables puntero, el almacenamiento de información de la máquina cliente; addrten valor del punto sizeof variable de puntero (struct sockaddr_in) entero. Devuelve: Devuelve con éxito un nuevo descriptor de socket que se utilizará para la nueva conexión. Devuelve -1 y un valor errno conjunto correspondiente cuando se produce un error.

6.Send:

en una caja de conexión de modo de transmisión (TCP) int información de envío (int sockfd, const void * msg, int len, int flags); sockfd se utiliza para transmitir msg punto de datos descriptor de socket es un puntero a los datos a transmitir. Len es la longitud en bytes de datos. banderas establecen en 0 en circunstancias normales.

7.recv:

en el zócalo de recepción conectado (TCP) de datos

int recv (int sockfd, void * buf, int len, banderas unsigned int); aceptar sockfd descriptor de socket de datos; buf está situado para recibir memoria intermedia de datos; len es la longitud de la memoria intermedia. Banderas también ponen a 0. Devuelve: el número de bytes realmente recibidos, si se interrumpe la conexión, devuelve 0,. Cuando se produce un error, y define el valor errno el retorno apropiado -1.

8.sendto:

en ausencia de la conexión de transmisión (UDP) Toma de datos de patrones de sendto int (int sockfd, const void * msg, int len, int flags, const struct sockaddr * a, int tolen); para representar la dirección IP y el puerto de información número de la máquina de destino tolen = sizeof (struct sockaddr). Devuelve: longitud de bytes de datos transmitidos o -1 en realidad cuando un error de transmisión.

9.Recvfrom ()

está conectado para recibir datos en ausencia (UDP) toma forma de realización de int recvfrom (int sockfd, void * buf, int len, banderas unsigned int, struct sockaddr * desde , londesde int *); a partir de la dirección IP y número de puerto almacenados en la máquina fuente. londesde = sizeof (struct sockaddr). Devuelve: el número de bytes de datos desde el depósito real. Devuelve -1 cuando se produce un error, y establece el errno apropiado.

10.Cierre ()

socket liberación, para detener cualquier manipulación de datos cerca (sockfd);

11.shutdown:

está conectado a cerrar la int cheque apagado (int sockfd, int cómo); cómo se puede ajustar a los siguientes valores: · 0 ------- permitió continuar recibiendo datos · 1 ------- autorizadas para continuar el envío de datos · 2- ------ permite que continúe para enviar y recibir datos, entonces se permite llamadas para cerrar () operación de apagado devuelve 0 en caso de éxito, devuelve cuando se produce un error -1 (errno yuxtapuesta correspondiente).

12 Gethostbyname:
Conversión

nombres de dominio y direcciones IP estructura hostent * gethostbyname (const char * nombre);

13.inet_pton funciones :.

la cadena decimal con puntos convertidos en orden de bytes de red valores binarios, la función de las direcciones IPv4 e IPv6 puede ser manejado. int inet_pton (int familia, const char * StrPtr, void * addrptr);

puede ser el primer parámetro o el AF_INET6 AF_INET: El segundo parámetro es un puntero a un puntero a la cadena de punto decimal: tercer parámetro es un puntero a la red puntero del orden de bytes de los valores binarios convertidos. Vueltas: 1 0 --- --- exitosa entrada de expresión no es un formato válido 0 --- fracaso

14.inet_ntop función:

y inet_pton funciones contraria función, es inet_ntop orden de bytes de red valores binarios en cadena de punto decimal. const char * inet_ntop (int familia, const void * addrptr, char * StrPtr len size_t);

El primer parámetro puede ser AF_INET o AF_INET6: El segundo parámetro es un puntero a la red binaria de orden de bytes el valor del puntero; punto después de que el tercer parámetro es un puntero a un puntero a una conversión decimal cadena; cuarto parámetro es el tamaño de la diana, con el fin de evitar el desbordamiento de memoria intermedia que funcionan persona que llama. Devuelve: el puntero apunta al resultado de la NULL éxito --- --- fracaso


Copyright © Conocimiento de Windows All Rights Reserved