Ich bin neu hier und habe schon ein wenig gelesen, stehe jedoch jetzt auch mal vor einem kleinen Problem.
Ich versuche mich gerade etwas an Sockets und möchte genauer gesagt Daten von mehreren Smartphones an einen Rechner schicken.
Ich habe das Beispielprogramm herangenommen, jedoch ist mir aufgefallen, dass das Programm abschmiert, wenn sich ein Smartphone trennt, da dann eben der Socket von Client geschlossen wird. Auf meiner Server Seite möchte ich jedoch den Port einfach immer offen haben und wenn Daten kommen diese Später auswerten. Wie gesagt es sollen viele Handys verbunden werden und wenn diese den Port schließen, soll der Server neu öffnen und lauschen.
Code: Alles auswählen
import socket
TCP_IP = '123.456.786.123'
TCP_PORT = 4567
BUFFER_SIZE = 20 # Normally 1024, but we want fast response
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE) # Programm stürtzt hier ab, wenn Handy sich trennt, ist ja auch klar, aber wie gehe ich da am besten vor?
if not data: break
print(("received data:", data))
conn.send(data) # echo
conn.close()