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.
Client: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."
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.

Rispondi quotando