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()
Escrito por rjgarciadelpino
Escrito por rjgarciadelpino
Escrito por rjgarciadelpino 