Enviar una función 2 C

Enviar una función 2 C
“Para enviar un mensaje de un socket a otro canal, podemos utilizar las funciones del sistema send (), sendTo () y sendmsg () del idioma C en el sistema Kali Linux. Podemos invocar la función send () cuando el enchufe está conectado (de modo que se conozca el destinatario previsto). La existencia de banderas es el único diferenciador entre las funciones Send () y Write (2). La función send () es equivalente a escribir (2) con un parámetro de indicadores de cero. Además, la siguiente llamada es equivalente a WQ1 Send (Socket_file_descriptor, buffer, longitud, indicadores);
sendTo (Socket_file_descriptor, búfer, longitud, indicadores, nulo, 0);

El descriptor de archivo de envío de Socket está contenido en el argumento Socket_file_descriptor. El mensaje se encuentra en un búfer y tiene una longitud de longitud para enviar () y sendto (). Necesitamos terminales de servidor y cliente para comprender la funcionalidad de la función send () prácticamente. Para este propósito, tenemos que escribir el código para el servidor y para el cliente. Utilizando el editor VIM, cree un servidor.C Archivo de programación C. Este es el comando para abrir un archivo de codificación en el editor VIM."

Después de incluir los archivos de encabezado necesarios en las primeras cinco líneas del servidor.Cile C, definimos una variable de puerto y establecemos su valor en 8000. Después del lanzamiento de la función principal, declaramos tres variables de tipo entero llamado Server FD (descriptor de archivos del servidor), un nuevo socket y un mensaje leído en la primera línea. Declarar la variable de dirección del tipo de sockaddr después de eso.

A continuación, definimos el valor de una opción variable para ser 1. Utilizando la función size_of, que es igual a la dirección, defina la variable de longitud de la dirección. Establezca el tamaño del búfer de variable de matriz de tipo de carácter en 1024, y defina los valores a 0. Luego se define un mensaje variable de tipo caracteres y se le da el valor de "Hola, soy servidor. Le puedo ayudar en algo?". Los tipos de direcciones con las que su socket puede comunicarse están designados por la familia de direcciones AF_INET (en este caso, las direcciones del protocolo V4 de Internet).

En una declaración condicional, asigne el descriptor del archivo del servidor y verifique si la asignación causa un error. Si falla, muestre el mensaje de error "Fallado de socket" y deje la función principal. Usando la función setSockOpt (), un programa de aplicación puede administrar cómo se comporta un socket. Debido a que el puerto 8080 no está disponible, estamos uniendo a la fuerza el enchufe al puerto 8000 en esta expresión condicional. Vinculamos a propósito el socket del servidor al puerto 8080 en la segunda línea condicional. Si el proceso de enlace no salió según lo planeado, use el método Perror para mostrar un mensaje de error y la función de salida para dejar la función principal. Verifique si el servidor está escuchando la solicitud del cliente en la tercera expresión condicional.

Aceptamos la conexión del servidor y establecemos el nuevo valor de socket en la cuarta declaración condicional, lo que indica que el servidor está recibiendo la solicitud del cliente. El mensaje enviado por el cliente que usa el socket y el búfer ahora debe leerse. El mensaje del cliente se mostrará en la pantalla del terminal y se enviará al cliente indicado al comienzo de la función principal. Cierre el enchufe y apague el canal utilizando el mecanismo de apagado después de que se haya realizado una comunicación exitosa al pasar el descriptor del archivo del servidor y cerrar el comando RDWR.

Cierre el editor VIM y compile el código utilizando el compilador GCC. Guarde el archivo de salida u objeto en el archivo del servidor:

Ahora es el momento de probar si el código del servidor se está ejecutando o no después de que haya completado la compilación. Utilizar el./Script del servidor dentro del terminal y la tecla Ingrese para hacer esto. Cuando el cursor parpadea, el servidor está activo y espera una solicitud del cliente:

Ahora tenemos que escribir el código del cliente usando el editor VIM y guardarlo en el cliente.archivo c.

El código para el cliente se muestra en la pantalla a continuación. Incluye los archivos de encabezado en las primeras líneas y establece el puerto utilizado para la comunicación entre el servidor y el cliente a 8000. Cree tres variables de tipo entero y establezca el valor de los calcetines en 0 dentro de la función principal. A continuación, haga una variable con el tipo de sockaddr en el tipo. Establezca una variable de mensaje con el valor "Saludos del cliente!"Y guárdelo.

Ahora use una declaración condicional para crear el socket y guardar el valor en la variable de socket. Las direcciones IPv4 o IPv6 se convierten de texto a binario. Usamos el 127 predeterminado del servidor.0.0.1 dirección IP. Empleamos la función inet_pton por este motivo. A continuación, creamos el código para usar la función de conexión para conectarse al socket y definir el descriptor del archivo del cliente. La dirección del servidor se le suministró. Ahora estamos preparados para usar la función de envío para entregar el mensaje al servidor.

El socket, el mensaje, la longitud del mensaje y la bandera, que está configurado en 0-están incluidos en el método de envío. Muestre el terminal del cliente cuando se ha enviado el mensaje. Luego lea la respuesta del servidor y visualelo en la pantalla. Cierre el descriptor del archivo después de una comunicación exitosa.

Ahora compile el código como se da en el fragmento a continuación.

Debe tener en cuenta que debe ejecutar el servidor antes de ejecutar el cliente porque si el servidor no responde, el cliente no se conectará y aparecerá un mensaje de error en la pantalla. En caso de desglose de comunicación, este es el resultado.

Aquí está la captura de pantalla de la comunicación exitosa en el lado del servidor:

En el lado del cliente:

Conclusión

Dentro de este artículo, hemos demostrado el uso de la función Send () de C en el programa Kali Linux. Tenga en cuenta que no podemos interactuar en el mismo terminal, por lo que debemos abrir dos, uno para el servidor y otro para el cliente. Este ejemplo se puede ajustar según las necesidades del usuario.