war vor Ewigkeiten schonmal hier, mein Raspberry Pi hat mich nun dieser Sprache wieder in die Hände gespielt und mir bereits ein gesundes Maß an Verwirrung bereitet.
Mein Problem: Ich habe eine Android-App (selfmade), die über einen Port befehle an meinen Pi schicken soll, wo diese dann umgesetzt werden. Mein Problem: Disconnecte ich einmal von diesem Server, komm ich nicht mehr "drauf", bzw. der Server reagiert nicht mehr.
Code: Alles auswählen
import socketserver
class MyTCPHandler(socketserver.BaseRequestHandler):
"""
The RequestHandler class for our server.
It is instantiated once per connection to the server, and must
override the handle() method to implement communication to the
client.
"""
def handle(self):
# self.request is the TCP socket connected to the client
while True:
self.data = self.request.recv(1024).strip()
if (self.data!=b""):
print (self.data)
FuncTree=bytes.decode(self.data).split('.')
print(FuncTree[0])
# just send back the same data, but upper-cased
#self.request.sendall(self.data.upper())
print("That's it")
def finish(self):
print("I'm done")
#Now the main Program
if __name__ == "__main__":
HOST, PORT = "", 4711
# Create the server, binding to localhost on port 9999
server = socketserver.TCPServer((HOST, PORT), MyTCPHandler)
# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
while True:
server.handle_request()
print("Working")
print ("finished")
Wenn ich den eingehenden Text nicht auf Inhalt prüfe, bekomme ich nach disconnect zichtausendfach einen leerstring und Eric ist für 2 Minuten unerreichbar.
Kann mir mal jemand erklären, wo ich nach dem Disconnecten im Quelltext stehe und wie ich wieder zurück in die Handle-Funktion komme, wenn ich mich wieder verbinde?
Wie findet man solche Probleme in Python.
Eine Info zum Schluss:
Ich bin noch nicht aufm Pi unterwegs, sondern entwickle noch in meiner Suse12.1-Umgebung. Mein Vergleichsserver (in 20 Minuten in PureBasic inkl. Gui runtergetippert) funktioniert einwandfrei. Es liegt also definitiv am PythonServer!
Gruß
PureFranky