Python: sockets sluiten
Geplaatst: za 13 apr 2024, 19:05
Ik ben een gedistribueerde applicatie aan het maken waarbij een laptop gekoppeld aan een electrolyser stroom en spanning doorstuurt naar een tweede laptop. De applicaties op beide laptops zijn geschreven in python. De stroom in de electrolyser wordt gemeten via een arduino. Er loopt echter af en toe wat mis met het doorsturen van de stroom en de spanning tussen de laptops.
Dit is een deel van de code op de laptop die spanning en stroom binnenkrijgt.
Deze laptop krijgt berichten binnen van de andere laptop genre "I:4;U:5;RPM:45" die dan geïnterpreteerd worden. De communicatie blijft in principe eeuwig duren. Om de seconde wordt een update doorgestuurd.
Mijn vraag is nu, hoe ga je om met het sluiten van de connectie, die conn.close() dus. Is het goed om te werken met een conn.close() of laat je dat achterwege en blijf je werken met dezelfde connectie. Bedoeling is natuurlijk ook dat er niet te veel vertraging is, maar vooral dat het allemaal zo stabiel mogelijk is.
Dit is een deel van de code op de laptop die spanning en stroom binnenkrijgt.
Code: Selecteer alles
def server_program():
global vermogen, spanning, stroom, rpm
host = socket.gethostname()
port = 1001
server_socket = socket.socket()
server_socket.bind((host, port))
print("server gestart: " + str(host))
server_socket.listen(2)
while True:
conn, address = server_socket.accept()
print("verbonden apparaat: " + str(address))
data = conn.recv(1024).decode()
if data:
try:
spanning = int(data.split(';')[0].split(':')[1])
stroom = int(data.split(';')[1].split(':')[1])
rpm= int(data.split(';')[2].split(':')[1])
vermogen=np.multiply(spanning,stroom)
print("van verbonden gebruiker: " + str(data))
update_queues()
except Exception as e:
print("Foutief bericht ontvangen:", data)
conn.close()
Mijn vraag is nu, hoe ga je om met het sluiten van de connectie, die conn.close() dus. Is het goed om te werken met een conn.close() of laat je dat achterwege en blijf je werken met dezelfde connectie. Bedoeling is natuurlijk ook dat er niet te veel vertraging is, maar vooral dat het allemaal zo stabiel mogelijk is.