Agradecimientos a David Pineda y al Curso de programación dictados en la Escuela cooperativa de permacultura

Ejemplo de servidor

import socket
import pickle
import time

bits = 3
buffersize = 2**8

timeout = 60

familia = socket.AF_INET
tipo = socket.SOCK_STREAM

server = socket.socket(familia, tipo)

host = 'localhost'
port = 5555
# chequear si está disponible:
# ps x|grep 5555

direccion = (host, port)

# ligar socket server a la direccion
server.bind(direccion)

# definir timeout
# en segundos
server.settimeout(timeout)

# escuchar por conexiones de nuevos clientes
server.listen()

# acepta conexión
(conn, address) = server.accept()

with conn:
	print('Connectado por', address)
	while True:
		data = conn.recv(buffersize)
		print(data)
		time.sleep(1)
		if data:
			msj = pickle.loads(data)
			print(msj)
			#if not data: break
			conn.sendall(pickle.dumps("Recibido %s" %msj))

Ejemplo de Cliente

import socket
import pickle


bits = 3
buffersize = 2**8

timeout = 60

familia = socket.AF_INET
tipo = socket.SOCK_STREAM

cliente = socket.socket(familia, tipo)

host='localhost'
port=5555

direccion = (host, port)

conn = cliente.connect(direccion)

print(conn)

while True:
	mensaje = input("Envía un mensaje:\n")
	pm = pickle.dumps(mensaje)
	cliente.sendall(pm)
	rm = cliente.recv(buffersize)
	msj = pickle.loads(rm)
	print("Hemos recibido en cliente %s"%msj)

Saludos