ersteinmal entschuldigt etwaige Fehler bei irgendwelchen Formatierungs- oder Einordungsfehlern meiner Inhalte hier - das ist mein erstes eigenes "Thema" ;D
Jetzt zu meinem Problem:
Ich programmiere auf einem Raspberry Pi und möchte einen TCP-Server erstellen der später dann Befehle von einer Android-App erhält und diese entsprechend verarbeitet. Das hat trotz meiner geringen Python-kenntnisse schon ganz gut geklappt (sonst entwickle ich in anderen Sprachen, jetzt soll auch Python dazu kommen daher auch die Anmeldung bei diesem Forum ). Der TCP-Server erhält bereits Nachrichten und sendet sie zur Kontrolle wieder zurück. Getestet habe ich das bisher mit dem Tool "Socket Test".
Nun soll er allerdings diesen erhaltenen String nicht nur "printen" sondern auch verarbeiten, dazu habe ich eine If-Abfrgage erstellt. Auch wenn "data" ganz offensichtlich "test" entspricht wird der Inhalt der If-Abfrgage jedoch nicht ausgeführt. Ist das ein Fehler beim en- bzw. decoden? Wie kann ich diesen beheben?
Habe bereits aufgrund eines anderen Fehlers die ersten zwei Zeilen hinzugefügt (Anleitung hatte ich von einem Link der mir vom Pi ausgespuckt wurde), dass hat ersteinmal auch geklappt. Liegt es an denen?
Hier erstmal der Code:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import sys
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('192.168.178.41', 21345)
print >>sys.stderr, 'server startet auf %s port %s' % server_address
sock.bind(server_address)
sock.listen(1)
while True:
# Auf Verbindung warten
print >>sys.stderr, 'Auf Verbindung warten...'
connection, client_address = sock.accept()
try:
print >>sys.stderr, 'Verbindung mit', client_address, 'hergestellt'
# Dateien empfangen und zurückschicken
while True:
data = connection.recv(16)
print >>sys.stderr, 'Daten empfangen:', data
if data:
print >>sys.stderr, 'Daten zurückgeschickt'
connection.sendall(data)
if data is "test":
print >>sys.stderr, 'Inhalt ist Test!'
else:
print"Kein Befehl erhalten"
else:
print >>sys.stderr, 'Verbindung mit', client_address, 'beendet'
break