Red de conocimiento informático - Computadora portátil - 2, 4, 4 Resumen y pensamientos del experimento El uso de funciones de socket de Windows requiere operaciones de inicialización y liberación.

2, 4, 4 Resumen y pensamientos del experimento El uso de funciones de socket de Windows requiere operaciones de inicialización y liberación.

Las funciones de socket generalmente están encapsuladas en la biblioteca de enlaces dinámicos Ws2_32.dll y el archivo de encabezado es winsock2.h, por lo que los usuarios deben consultar el archivo de encabezado y la biblioteca de enlaces

#include "winsock.h"/ /consulte el archivo de encabezado

# pragma comment(lib, "ws2_32.lib") //vincule el archivo de la biblioteca

Además, debe inicializar el socket antes de usarlo funciones de biblioteca word, esto se puede lograr usando la función WSAStartup(), por ejemplo

WSADATA wsd //Definir el objeto WSADATA

WSAStartup(MAKEWORD(2,2), &wsd); // Inicializa el socket

Las siguientes funciones de socket

1: Función WSAStartup: se utiliza para inicializar la biblioteca de enlaces dinámicos, indispensable

int WSAStartup( WORD wVersionRequested, LPWSADATA lpWDADATA)

//Consulte las líneas anteriores para conocer el uso

2: función de socket: se utiliza para crear sockets

SOCKET socket(int af, tipo int, protocolo int)

Af: representa una serie de direcciones, generalmente AF_INET

Tipo: representa el tipo de socket, SOCK_STREAM: crea un socket de transmisión orientado a conexión SOCK_DGRAM: indica; la creación de un socket sin conexión orientado a datagramas, SOCK_RAW: indica SOCK_RAW: crea un socket sin formato

Protocolo: indica el protocolo que se utilizará, si no se especifica, se puede establecer en 0

El valor de retorno de la función es el identificador del socket creado.

3: función de enlace: se utiliza para vincular el socket al puerto y la dirección especificados

int bind(SOCKET s,const struct sockadddr FAR * name, int namelen)

s: representa el indicador del socket

nombre: es un puntero de estructura sockaddr, que incluye puerto y dirección

namelen: determina la longitud del búfer de nombres

Valor de retorno: 0 indica éxito; SOCKET_ERROR indica falla

4: función de escucha: se utiliza para configurar el socket en modo de escucha. Para sockets de streaming, este modo debe ser

Int listening(SOCKET s, int backlog)

Backlog: Indica la longitud máxima de la cola en espera de conexiones

5: función de aceptación: se utiliza para recibir enlaces de clientes

SOCKET aceptar (SOCKET s, struct sockaddr FAR *addr, int FAR * addlen)

S: indicador de socket, debe estar en el estado de escucha

addr: contiene un conjunto de información de dirección y puerto del cliente

addlen: se utiliza para recibir la longitud del parámetro addr

Valor de retorno: y A nuevo socket correspondiente a una conexión de cliente aceptada, que debe usarse para todas las operaciones posteriores de ese cliente.

6: Función closesocket: cierra el enchufe.

int closesocket(SOCKET s);

7: función de conexión: se utiliza para enviar solicitudes continuas

int connect(SOCKET s, const struct sockaddr FAR * name, int namelen)

nombre: indica la dirección y el número de puerto del host al que se conectará el socket

namelen: indica la longitud del búfer

Devuelve 0 en caso de éxito, de lo contrario, devuelve SOCKET_ERROR.

8: función recv: se utiliza para recibir datos de sockets orientados a conexión

int recv(SOCKET s, char FAR *buf,int len, int flags )

buf: búfer utilizado para recibir datos

len: longitud de buf

indicadores indica el método de llamada de función MSG_PEEK: indica visualización de los datos entrantes, MSG_OOB significa procesamiento datos salientes

9: función de envío: se utiliza para enviar datos entre sockets en modo orientado a conexión

int send(SOCKET s, const char FAR * buf, int len, int flags)

buf representa el tamaño del buffer para enviar datos

Cómo se llama la función flags

10: Función Seleccionar: Se utiliza para verificar si uno o más sockets están en estado de lectura, escritura o error

Int select(int nfds,fd_set FAR * readfds,fd_set FAR * writefds,fd_set FAR * exceptfds,const struct timeval FAR * timeout)

nfds: sin sentido

readfds representa un conjunto de sockets legibles

writefds representa un conjunto de sockets grabables

p>

exceptfds representa un conjunto de sockets con verificación de errores

exceptfds representa un conjunto de sockets con verificación de errores

nfds: sin sentido

readfds representa la colección de sockets que se han verificado en busca de errores

el tiempo de espera representa el tiempo de espera de la función

11: Función WSACleanup: se utiliza para liberar la asignación de los recursos de la biblioteca de vínculos dinámicos Ws2_32.dll de inicialización

Int WSACleanup(void)