ho un problema che non riesco a risolvere. dopo tanti giorni ho ottenuto un sistema client/server udp stabile...o quasi. In pratica, indipendentemente dagli import (Twisted o asyncore) il sistema funziona. Il client invia un messaggio al server, il server stampa il messaggio e ne invia un altro al client in risposta. Il client lo stampa a video e il ciclo finisce. Il problema è che dopo aver terminato il ciclo, il client va in errore.
Traceback (most recent call back):
File "<stdin>", line 1, in <module>
ImportError: No Module Named py
Invece scrivendo lo stesso contenuto dei client tramite riga di comando, non appare alcun errore. Terminato il ciclo il prompt non dà errori.
Vi posto 2 esempi di client. Usandoli come files .py e richiamandoli, fanno ciò che devono fare ma a ciclo finito danno errore. Scrivendo il loro contenuto tramite riga di comando fila tutto liscio. Spero che qualcuno possa aiutarmi, grazie.
Esempio 1:
import socket
ip = "IP del il mio server"
porta = 3030
addr = ip, porta
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print "Sono pronto. scrivi 'esci' per interrompere il ciclo"
while 1:
data = raw_input()
client.sendto(data,addr)
data2,indirizzo=client.recvfrom(1024)
print data2
if data == "esci":
break
client.close()
print "\nTest ok."
Esempio 2:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
data = "Ciao, qui e' il client 1. Rimango in attesa di dati dal Server"
sock.sendto(data, ('host del server', 3030) )
data2, addr = sock.recvfrom(1024)
print ("Da: ", addr, "Dati: " , data2)
sock.close()
Spero ci sia ancora qualcuno qui nonostante la calura...

Rispondi quotando