Ich versuche, einen einfachen Client & Server Messaging-Programm in Python zu machen, und ich bekomme immer den Fehler "TypeError: 'Str' unterstützt nicht die Pufferschnittstelle" und nicht Ich weiß wirklich, was das bedeutet. Ich bin ein Anfänger mit Python zum größten Teil und ein kompletter Anfänger mit Vernetzung.TypeError: str unterstützt keine Pufferschnittstelle
Ich nehme an, aus irgendeinem Grund kann ich keine String-Daten senden? Wenn dies der Fall ist, wie würde ich eine Zeichenfolge senden?
Als Referenz, der Beispielcode, von dem ich am meisten bekam, war für Python 2.x, und ich mache das in Python 3, also glaube ich, dass es ein weiterer Knick ist, aus Versionsübergängen herauszuarbeiten. Ich habe nach dem gleichen Problem gesucht, kann aber nicht wirklich herausfinden, wie ich die gleichen Korrekturen auf meine Situation anwenden kann.
Hier ist der Anfang Code für den Server:
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 5000))
server_socket.listen(5)
print("TCP Server Waiting for client on port 5000")
while 1:
client_socket, address = server_socket.accept()
print("TCP Server received connect from: " + str(address))
while 1:
data = input("SEND(Type q or Q to quit):")
if(data == 'Q' or data == 'q'):
client_socket.send(data)
client_socket.close()
break;
else:
client_socket.send(data)
data = client_socket.recv(512)
if(data == 'q' or data == 'Q'):
client_socket.close()
break;
else:
print("Received: " + data)
Versuchen Sie, ['StringIO.StringIO (data)'] (http://docs.python.org/library/stringio.html) anstatt nur 'data' zu senden. –
Als eine Randnotiz: Sie können Ihre if-Anweisungen wie folgt vereinfachen 'wenn Daten in ('q', 'Q'):' – gsk
@ gsk: Oder 'wenn data.lower() ==" q ":' . –