import socket
import sys
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind the socket to the port
server_address = ('0.0.0.0', 10000)
print('starting up on {} port {}'.format(*server_address))
sock.bind(server_address)
# Listen for incoming connections
sock.listen(1)
j = 0 # contatore dei file salvati
while True:
# Wait for a connection
print('waiting for a connection')
connection, client_address = sock.accept()
try:
print('connection from', client_address) # segnalo a video una ricezione di una lettura
while True:
data = connection.recv(20000) # buffer dei dati in igresso
print(data) # stampo a video i dati ricevuti
if data:
f = open('lettura_'+str(j)+'.csv', 'w',newline='', encoding='utf8') #apro un file dove poi salvare i dati
stri = format(data) # metto il buffer in una variabile stringa
lun = len(stri) # misuro la lunghezza della stringa
lun = lun-1 # predispongo 4 variabili ausiliarie
pi = 2 #
pf = 1 #
flag = 0 #
for i in range (2,lun ,1): # sostituisco i punti nella lettura con le virgole
if stri[i] == '.' :
stri[i] = ','
if stri[i] == ';' :
f.write(str(pf)) # scrivo la lettura nel file
if flag == 0:
flag = 1
f.write(';') # scrivo il separatore nel file
pf = pf+1
f.write(stri[pi:i]) # scrivo il numero della lettura
f.write('\n') # scrivo il fine riga e vado a capo nel file
pi = i
f.close()
j = j + 1
print('scrivo il file')
else:
print('no data from', client_address)
break
finally:
# Clean up the connection
connection.close()