Download Ayudantía de EC: Sockets

Document related concepts
no text concepts found
Transcript
AYUDANTÍA DE EC: SOCKETS
Profesor: Paul Leger
Ayudante: Joaquín Romero
¿QUE ES UN SOCKET? UNA EXPLICACIÓN
SIMPLE
 Un socket es un mecanismo por el cual se pueden comunicar
distintos computadores.
 Para comunicarse debe haber un cliente (envía datos) y un
servidor (recibe datos y puede regresar datos al cliente)
EJEMPLO DE SOCKET EN PYTHON
Para crear un socket en Python debemos utilizar el siguiente código:
import socket #for sockets
s = socket.socket() #Create the socket
print 'Socket Created'
s.close() #Close the socket
EJEMPLO DE SOCKET EN PYTHON
Podemos usar el socket para obtener la ip de un host con el siguiente código:
import socket #for sockets
s = socket.socket()
print 'Socket Created'
host = 'www.google.com'
remote_ip = socket.gethostbyname( host )
print 'Ip address of ' + host + ' is ' + remote_ip
s.close()
Implemente este
código para
alguna pagina web
que Ud. desee
EJEMPLO DE SOCKET EN PYTHON
 Con socket en Python podemos crear un servidor y cliente para intercambiar mensajes
como en un Chat!
 Servidor
import socket
s = socket.socket()
host = "127.0.0.1"
port = 1111
s.bind((host, port))
print "Bienvenido al Chat en: " + str(host)
s.listen(5)c, addr = s.accept()
while True:
data = str(c.recv(1024))
print data
if data == "exit":
c.close()
 Cliente
import socket
s = socket.socket()
host = str(raw_input("Ingrese la direccion a la que desea conectarse: "))
port = 1111
s.connect((host, port))
while True:
texto = str(raw_input(" :"))
s.send (texto)
if texto == "exit":
break
s.close()
EJERCICIOS
1) Con el comando telnet en Linux uno se puede comunicar a un host a través de
$ telnet [hostname] [port]
Modifique el código del servidor para que a través de telnet le retorne el
mensaje enviado junto con “recibido!” (ejemplo “ hola…recibido!” ). Considere
las funciones de socket
2) Cree un programa que sea cliente y servidor a la vez. A través de hilos como
procesos pesados