[PFC] Programacion con Sockets en Python

Trabajar con sockets en Python es muy parecido a como se trabaja en c, con la estructura socket; Tendremos por tanto las típicas funciones para enviar y recibir (send y recv), además de las llamadar para crear un socket o destruirlo, pasando por las write y read.

Como no hay mejor manera para aprender de esto, vamos a crear un servidor de ECHO, a ver como nos va la cosa:

Primero vemos el código del servidor

#importamos el modulo socket para comunicacion en red
import socket
#Creamos un socket de tipo INET (ipv4) de tipo TCP
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#bindeamos al puerto 9999 de localhost el socket
serverSocket.bind(("localhost",9999))
#escuchamos como mucho 5 peticiones simultáneas
serverSocket.listen(5)
while True:
    #si se recibe alguna conexion se acepta
    socketIntercambio, (host_c,puerto_c)=serverSocket.accept()
    #esperamos a que se nos envie algun mensaje
    recibido=socketIntercambio.recv(1024)
    print "Recibido: ",recibido
    #lo enviamos de vuelta
    socketIntercambio.send(recibido)
    #cerramos el socket de intercambio
    socketIntercambio.close()
    if recibido=="close":
        serverSocket.close()
        break

Ahora vemos el cliente

#importamos el modulo socket
import socket
#creamos un socket para la conexion
s = socket.socket()
s.connect(("localhost",9999))
#pedimos una entrada de datos para mandar al servidor de echo
mensaje=raw_input("->")
#enviamos la entrada
s.send(mensaje)
#esperamos una respuesta
recibido = s.recv(1024)
print "ECHO: ",recibido
#cerramos el socket
s.close()
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: