Python3 - Meldung cant concat byte to string
Hi NG,
bei folgendem Code habe ich die Fehlermeldung: can't concat byte to string.
Ich habe bei Google keine Lösung gefunden, die funktioniert.
Wo ist mein Problem?
Gruß
Andy
bei folgendem Code habe ich die Fehlermeldung: can't concat byte to string.
from socket import *
#Localhost
myHostName = ''
myPort = 5007
#als Antwort die sortierte Eingabe
def answers(s):
s = s + "zurück" #Fehlermeldung: can't concat byte to string
# Hauptsocket
mainsocket = socket(AF_INET, SOCK_STREAM)
# an HostName und Port binden
mainsocket.bind((myHostName, myPort))
# max. Verbindungen gleichzeitig (hier eine)
mainsocket.listen(1)
while 1:
#Clientsocket
connection, address = mainsocket.accept()
print("Serveradresse: ",address)
while(1):
#max. 1024 Byte lesen
data = connection.recv(1024)
#wenn keine Daten mehr, request anzeigen
if not data:
break
#Daten ausgeben
print("empfangen: ",data)
#verabeiteten String zurückgeben
connection.send(answers(data))
#Verbindung schließen
connection.close()
Ich habe bei Google keine Lösung gefunden, die funktioniert.
Wo ist mein Problem?
Gruß
Andy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 269065
Url: https://administrator.de/contentid/269065
Ausgedruckt am: 08.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
Quelle: https://docs.python.org/3/library/socket.html
Lösung
(Gefunden mit Google innerhalb 3 minuten :P )
lg,
Slainte
socket.recv(bufsize[, flags])
Receive data from the socket. The return value is a bytes object
Lösung
[...] answer(data.decode("utf-8")) [...]
(Gefunden mit Google innerhalb 3 minuten :P )
lg,
Slainte
Das liegt vermutlich daran das deine "answer" function eigentlich keinen Wert zurück gibt.
Versuchs mal mit:
Evtl. währe es sinnvoller wenn du dich erstmal mit den Basics von Python beschäftigst anstatt dich gleich auf die Programmierung von Sockets zu stürzen.
Versuchs mal mit:
def answers(s):
return s + "zurück"
Evtl. währe es sinnvoller wenn du dich erstmal mit den Basics von Python beschäftigst anstatt dich gleich auf die Programmierung von Sockets zu stürzen.
kann diese mangels Sprachkenntnissen nicht lesen!
Da wird's dann allerdings im Internet eher schwierig...Zitat von @AndyAh:
der Server funktioniert zwar jetzt, aber ich habe die Fehlermeldung nun im Clientteil.
Du scheinst echt keinen Plan zu haben was du da machst ... wenn du den Typ in einen String umwandelst musst du ihn hinterher wieder zu einem Bytearray wandeln ... der Server funktioniert zwar jetzt, aber ich habe die Fehlermeldung nun im Clientteil.
bytearray(s)
Da Daten eben nur als ByteArray gesendet werden können.Les besser erst mal die Grundlagen anstatt zu frickeln ...
Gruß jodel32