Ciao a tutti. Sto da poco iniziando a pacioccare con le socket. Come esercitazione ho fatto una semplice applicazione composta da un client e da un server. La parte client manda i messaggi al server e quest'ultimo li stampa a video.
codice:
### server

from socket import *
port = 80

test = socket(AF_INET, SOCK_STREAM)
test.bind(("127.0.0.1", 80))
test.listen(5) # definisce il numero max di connessioni simultanee
print "Ready to receive strings. "
conn, addr = test.accept() #la funzione accept() mette il socket in listening
print "Indirizzo socket", conn
print "Server contattato da", addr


while 1:
	data = conn.recv(1024)
	print data
	if data == "exit":
		break
	
test.close()
print "\nFine."
Client:

codice:
### client

from socket import *

host = "127.0.0.1"
port = 80
addr = host, port

client = socket(AF_INET, SOCK_STREAM)
client.connect(addr)

print "Ready to send strings. Type 'exit' to quit"

while 1:
	data = raw_input("Testo: ")
	client.send(data)
	if data == "exit":
		break
	
client.close()
print "\nFine."

Il codice così com'è funziona correttamente.
Ora volevo fare in modo che anche il server potesse mandare messaggi al client. Una cosa del tipo:

test.send(data)

conn.recv(data)

...ma non funziona.
Per fare questo come posso fare? Devo creare un nuovo oggetto socket?
Sarebbe alquanto scomdo. Su IRC mi è stato suggerito di utilizzare un thread in parallelo per gestire due processi contemporaneamente ma la cosa non mi appare molto chiara. Qualcuno può illuminarmi a riguardo?
Saluti.