Ah Ok, wieder was gelernt
Für meine Basteileien muss das überrings nicht super professionell umgesetzt sein, mit dem Ergebnis bin ich so zufrieden, auch wenn ich weiß das es sicher besser ginge
Dennoch natülich besten Dank an alle die sich mit mir rumschlagen hier
Edit @BlackJack:
Ich verwende überrings nichtmehr recv() um die Daten zu verarbeiten sondern die Variable data, auch wenn es zwischendurch in einem meiner geposteten Codes hier stand, oder ist es nicht das was du meintest?
Fehlgeschlagene If-Abfrage
@montus_pythonia: Äh, und wo kommt der Inhalt von `data` her? Du verwendest `recv()` zumindest in den gezeigten Quelltexten falsch.
Da es sich ja offensichtlich um ein zeilenbasiertes Protokoll handelt, läßt sich das Problem einfach lösen:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import socket
import sys
def process(connection, client_address):
print >>sys.stderr, 'Neue Verbindung mit:', client_address
# Daten empfangen und zurückschicken
for line in connection.makefile('r'):
print >>sys.stderr, 'Daten empfangen:', repr(line)
print >>sys.stderr, 'Daten werden zurückgeschickt'
connection.sendall(line)
if line.strip() == "test":
print >>sys.stderr, "Data ist test!"
else:
print >>sys.stderr, "Data ist nicht test!"
print >>sys.stderr,'Verbindung mit', client_address, 'beendet'
def mainloop():
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:
print >>sys.stderr, 'Auf Verbindung warten'
process(*sock.accept())
if __name__ == '__main__':
mainloop()