Esempio n.1
Trasferimento di un file da un client a un server (realizzato da simone-27)
Client
1 from socket import * #importa tutte le funzioni del modulo socket
2
3 ip='127.0.0.1' #indirizzo ip del server
4 porta=54321 #porta sulla quale è in ascolto il server
5
6 cli_sock=socket(AF_INET, SOCK_STREAM) #crea un socket (cli_sock)
7 cli_sock.connect((ip, porta)) #connetti al server
8 perc=raw_input('Inserire il percorso del file da inviare: ')
9 file = open(perc,'r') #apri il file perc in lettura
10 print 'Invio file in corso...'
11 while 1:
12 data = file.read(1024) #legge 1024 caratteri ad ogni giro del ciclo
13 if not data: break #se data è vuoto interrompi il ciclo
14 cli_sock.send(data) #invia data al server
15 file.close() #chiudi il file
16 cli_sock.close() #chiudi il socket
Server
1 porta=54321 #porta sulla quale restare in attesa
2 testo=''
3
4 serv_sock=socket(AF_INET, SOCK_STREAM) #crea un socket (serv_sock)
5 #resta in attesa (la funzione gethostname() restituisce l' ip del server)
6 serv_sock.bind((gethostname(), 54321))
7 serv_sock.listen(1) #si mette in ascolto e accetta al max una connessione
8 cli_sock, cli_info=serv_sock.accept() #accetta le richieste dal client
9 print 'Ricezione file in corso...'
10 while 1:
11 data = cli_sock.recv(1024) #riceve dati dal client
12 testo+=data
13 if not data: break #se data è vuoto interrompi il ciclo
14 perc=raw_input('Inserire il percorso dove vuoi salvare il file: ')
15 file=open(perc,'w') #apri il file perc in scrittura
16 file.write(testo) #scrivi testo nel file
17 file.close() #chiudi il file
18 cli_sock.close() #chiudi il socket
19 serv_sock.close() #chiudi il socket