[Python] Socket windows
Enrico Bianchi
enrico.bianchi a ymail.com
Lun 26 Maggio 2014 12:57:14 CEST
Ultimamente mi sto scontrando cone le idiosincrasie di Windows senza
trovare una via di uscita. Prendiamo in esame il seguente codice:
import socket
host = ''
port = 50000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(size)
if data:
client.send(data)
client.close()
Il codice non e` altri che un normale echo server, che apre il suo
socket e si mette in ascolto delle richieste dei client. Il problema e`
che che su ambienti *nix (o meglio, su Linux, visto che non ho altri
sistemi *nix su cui provare ;) ) non solo funziona bene, ma basta un
CTRL + C (SIGINT) per terminare il processo ed avere di nuovo la shell
libera. Su Windows pero` a quanto pare non funziona, ovvero l'unico modo
per fermare il processo e` killandolo brutalmente, cosa non sempre
fattibile (e.g. se faccio girare l'echo server come servizio non posso
fermarlo dalla schermata dei servizi). C'e` un modo per aggirare questa
cosa che non sia "abbandona Windows"? :)
Enrico
Maggiori informazioni sulla lista
Python