



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Los conceptos básicos de sockets, su estructura y las diferencias entre clientes y servidores en el API de sockets. Además, se explica el proceso de conexión entre clientes y servidores con ejemplos de conexiones concurrentes. Se incluyen conceptos relacionados como sockets activos y pasivos, y se utiliza el comando netstat para observar las conexiones establecidas.
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Para describir un socket: struct sockaddr_in { u_char sin_len; /* total length / u_short sin_family; / AF_INET: address family / u_short sin_port; / port number / struct in_addr sin_addr; / IP address(u_long) / char sin_zero; / not used (0) */ } sin_port indica el puerto asociado a esa terminación. Si se trata de un servidor (socket pasivo) indica el puerto en el que escucha dicho socket pasivo. Si se trata de un cliente (socket activo) indica el puerto con el que se quiere contactar. -Diferencias entre cliente y servidor en el API de sockets: Los sockets de cliente o activos son aquellos que permite conectar a un servidor y usar los métodos read y write para leer o escribir de la conexión. Los sockets pasivos o de servidor son aquellos que permiten asociarse (bind) a una dirección y esperar a que lleguen conexiones entrantes (listen). Dependiendo del criterio del servidor, estas conexiones podrán (o no) aceptarse (accept). Si la conexión entrante se acepta en el servidor, la llamada a accept dará como resultado un socket activo que permitirá escribir o leer de él. Mientras tanto, el servidor regresará para aceptar más conexiones. Como resultado de aceptar una conexión, se crea otro socket activo que representa en el servido la conexión con el cliente. Por tanto: habrá un único socket pasivo en un servidor habrá tantos sockets activos como clientes conectados si el servidor tiene que leer o escribir datos del/al cliente, usará el socket activo asociado a dicho cliente
Sockets activos Los sockets activos son aquellos usados para enviar datos. Conocidos los datos del extremo con el que se quiere conectar (en el caso de TCP hay que conocer la IP y el puerto de destino) puede crearse un socket activo (con la función socket) que creará la conexión entre el cliente y el servidor (tras llamar a connect). Una vez creada la conexión, dicho socket podrá usarse para enviar/recibir datos al/del servidor. Usando read y write. Sockets pasivos Los sockets pasivos son sockets de servidor. Simplemente escuchan nuevas conexiones y si una conexión entrante se acepta, se crea un socket activo para atenderla. Tras llamar a listen() se deberá llamar a accept(). Accept es bloqueante, el flujo de ejecución parará en accept hasta que llegue una conexión. Como se muestra en el la figura anterior, la secuencia resumida de llamadas al sistema es para un socket pasivo es socket() -> bind() -> listen() -> accept()
Primero conectamos el servidor con ./TCPechod 8xxx y conectamos los dos clientes al servidor usando ./TCPecho
You can connect and disconnect the client without any problem. This is what you see using netstat -tn. Using this you can see the protocol, the local address (our server) , the foreign address and the state of the connections.
Le das a enter en el terminal que pones mail y te sale el correo. Cabecereras: X-original-to: Todos los campos no estan definidos en la norma. Hay campos que sí lo están y tienen una finalidad predefinida; otros, en cambio, no y los clientes y servidores pueden añadirlos a voluntad asignándole el significado que consideren oportuno. En estos el nombre suele empezar por la letra X- , aunque no es obligatorio. DKIM-signature: DKIM añade una cabecera llamada "DKIM-Signature" que contiene una firma digital del contenido (cabeceras y cuerpo) del mensaje. Los parámetros por defecto del mecanismo de autenticación son la utilización de SHA-256 como la firma criptográfica y RSA como el esquema de criptografía asimétrica. Finalmente se codifica la firma resultante con Base64. Date: cuando se ha enviado From: quien lo ha enviado Enviad un correo indicando que se desea recibir por parte del emisor un mensaje de notificación de estado de entrega (DSN) que debe ser proporcionado por el servidor SMTP de la dirección de correo destino.