0% encontró este documento útil (0 votos)
15 vistas13 páginas

8 Sockets

El documento describe el API de Sockets en Python, que permite la comunicación entre procesos mediante sockets de datagrama (UDP) y de flujo (TCP). Se presentan ejemplos de implementación de un servidor y un cliente para ambos tipos de sockets, mostrando cómo se envían y reciben mensajes. Además, incluye capturas de Wireshark para ilustrar la interacción entre cliente y servidor.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas13 páginas

8 Sockets

El documento describe el API de Sockets en Python, que permite la comunicación entre procesos mediante sockets de datagrama (UDP) y de flujo (TCP). Se presentan ejemplos de implementación de un servidor y un cliente para ambos tipos de sockets, mostrando cómo se envían y reciben mensajes. Además, incluye capturas de Wireshark para ilustrar la interacción entre cliente y servidor.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Lic.

Roberto Vargas Blacutt

2022
El API de Sockets

● Es una interfaz de programación para la comunicación entre procesos


● Estándar por defecto y base de otras interfaces mas sofisticadas
● Un proceso que desea comunicarse con otro proceso debe crear una
instancia o “instanciar” un socket
● Dos tipos de sockets para dos servicios de transporte
○ UDP – Datagram sockets
○ TCP – Stream sockets

API Sockets Python @Roberto Vargas B. 2


UDP - Interacción cliente/servidor con Python
servidor
Corriendo en miservidor cliente
Socket de Datagrama
crear socket, puerto= x: crear socket:
serverSocket = clientSocket =
• Transporte de datos socket(AF_INET,SOCK_DGRAM) socket(AF_INET,SOCK_DGRAM)

(Datagramas) usando una


comunicación sin conexión Lee datagrama UDP de Crear datagrama con miservidor
serverSocket y puerto=x.
Enviar datagrama a clientSocket

• Cada datagrama es
encaminado individualmente Escribe respuesta a Leer datagrama de
y puede llegar al receptor en serverSocket
Especificando dirección y
clientSocket

cualquier orden puerto del cliente


cerrar
clientSocket

API Sockets Python @Roberto Vargas B. 3


Python - Servidor UDP

# UDP Servidor
from socket import *

serverPort = 9876
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(("localhost", serverPort))
print("Servidor listo para recibir ...")
while 1:
message, clientAddress = serverSocket.recvfrom(2048)
print("Se ha recibido: ", message)
modifiedMessage = message.upper()
serverSocket.sendto(modifiedMessage, clientAddress)

API Sockets Python @Roberto Vargas B. 4


Python – Cliente UDP

# UDP cliente
from socket import *

serverName = "localhost"
serverPort = 9876
clientSocket = socket(AF_INET, SOCK_DGRAM)
message = str.encode(input("Ingrese frase en minusculas:"))
clientSocket.sendto(message, (serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print(modifiedMessage)
clientSocket.close()

API Sockets Python @Roberto Vargas B. 5


Captura Wireshark - Cliente

API Sockets Python @Roberto Vargas B. 6


Captura Wireshark - Servidor

API Sockets Python @Roberto Vargas B. 7


TCP - Interacción cliente/servidor con Python
servidor
Socket de Flujo Corriendo en miservidor cliente
crea socket, puerto= x para recibir
peticiones
• Transporta un flujo de datos serverSocket = Socket()
sobre una conexión lógica
entre emisor y receptor Espera recibir conexiones
connectionSocket =
Establece conexión crea socket y conexión a
miservdor, puerto=x
serverSocket.accept() clientSocket = socket()
TCP
• Garantiza que los datos se Lee solicitud de Envía petición usando
reciban en el mismo orden connectionSocke clientSocket
en que fueron enviados t
Escribe respuesta a
connectionSocket Lee repuesta de
clientSocket

cierra connectionSocket
cierra clientSocket

API Sockets Python @Roberto Vargas B. 8


Python - Servidor TCP

# TCP Servidor
from socket import *

serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind(("localhost",serverPort))
serverSocket.listen(1)
print ("El servidor esta listo para recibir")
while 1:
connectionSocket, addr = serverSocket.accept()
sentence = connectionSocket.recv(1024)
print("Se ha recibido: ", sentence)
capitalizedSentence = sentence.upper()
connectionSocket.send(capitalizedSentence)
connectionSocket.close()

API Sockets Python @Roberto Vargas B. 9


Python - Cliente TCP

# TCP Cliente
from socket import *

serverName = "localhost"
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = str.encode(input("Ingrese frase en minusculas: "))
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)
print ("Desde el Servidor: ", modifiedSentence)
clientSocket.close()

API Sockets Python @Roberto Vargas B. 10


Captura Wireshark - Cliente

API Sockets Python @Roberto Vargas B. 11


Captura Wireshark - Servidor

API Sockets Python @Roberto Vargas B. 12


Fin
Tema 2

Que debo preparar para la siguiente clase?

Primer Examen Parcial

API Sockets Python @Roberto Vargas B. 13

También podría gustarte