ich möchte Daten von einer SPS (Speicherprogrammierbare Steuerung) zum PC schicken. Dabei verwende ich den unten stehenden Code. Wenn ich probeweise ein String mit dem Inhalt Hallo schicke, dann kommt am PC folgendes an: '/xfe/x05'. Anscheinend kann Python die Kodierung nicht interpretieren. Weiß jeman zufällig welche Kodierungsart das ist.
Für Eure Hilfe wäre ich sehr dankbar.
Code: Alles auswählen
#! /usr/bin/env python
# -*- encoding: latin1 -*-
# Dieser TCP-Server sendet alle Daten, die er empfängt an den
# Client als Antwort zurück
from socket import *
# Der standard Echo Port ist nicht sehr nützlich, da er root
# Rechte erfordert. Wir nehemen den Port 50007
ECHO_PORT = 2000
BUFSIZE = 1024
def main():
# TCP-Socket erstellen und an Port binden
s = socket(AF_INET, SOCK_STREAM)
f = file('C:\\gedicht.txt', 'a')
print "Socket initiert"
x = gethostname()
print x
y = gethostbyname(x)
print y
s.bind(('', ECHO_PORT))
s.listen(1)
print "Server gestartet"
# Warte auf eine Verbindung zum Server
conn, (remotehost, remoteport) = s.accept()
print 'Verbunden mit %s:%s' % (remotehost, remoteport)
while 1:
# Empfange daten vom Client
data = conn.recv(BUFSIZE)
print "Echo:" + repr(data)
print type(data)
f.write(repr(data))
f.write('\n')
if not data:
# Die Verbindung wurde getrennt
# Abbruch
break
# Sende die Daten zurück zum client
#conn.send(data)
# Socket schließen
s.close()
f.close()
print('Verbindung beendet')
if __name__ == '__main__':
main()