Paul Leger http://pleger.cl SOCKETs Paul Leger http://pleger.cl
Cliente-servidor Cliente IP 1 Servidor IP 2 Solicita Información Notebook Servidor Web Servidor DNS Servidor de Base de Datos
Tres niveles Cliente IP 1 Servidor IP 2 Servidor IP 3 Solicita Información Notebook Servidor Web Servidor de Base de Datos Servidor IP 3 Servidor DNS
¿Cómo conversan? ¡USANDO PUERTOS! Cliente IP 1 Servidor IP 2 Solicita Información Notebook Servidor Web Servidor DNS Servidor de Base de Datos ¡USANDO PUERTOS! Conexión remota Juego en linea
Sockets: IP + Puerto (1) Ejemplo de una petición a 200.0.0.1:43 Programa 1 43 Programa 2 1043 Cliente 146.83.12.3 Servidor 200.0.0.1 Petición Requerida 65 Web 200.0.0.1 10 P: ¿Qué puede ser esta petición? R: Cualquier cosa, hasta una hora Correo Tarea: ¿Cuál es el puerto usado para atender servicios Web?
Sockets: IP + Puerto (2) Algunos servicios aceptan peticiones a través de puertos Cliente IP 1 Servidor IP 2 Petición Requerida Notebook Servidor Web (apache2: 80) Servidor DNS (Bind : 53) Servidor de Base de Datos (MySql: 3306) Conexión remota (ssh y scp: 22) Juego en linea (WOW: 3724, 1119) Transferencia de Archivo (FTP: 21)
Tarea: ¿Qué puerto usa el servicio SSH? Comando: nmap El comando nmap permite conocer qué puertos tiene abierto una dirección IP Para instarlo en linux, escribir: sudo apt-get install nmap Luego: nmap 127.0.0.1 Tarea: ¿Qué puerto usa el servicio SSH?
Socket en Python #client #server Import socket import socket s = socket.socket() host = “127.0.0.1” port = 12345 s.connect((host, port)) print s.recv(2) s.close() #server import socket s = socket.socket() host = “127.0.0.1” port = 12345 s.bind((host, port)) s.listen(5) while True: c, addr = s.accept() print “Conectado con ”, addr c.send(“Gracias por su conexión”) c.close()