Python无法解码字节:无效的起始字节

时间:2019-04-01 21:02:14

标签: python-3.x sockets

因此,我正在构建此套接字应用程序,它在我的计算机上工作正常。但是,当我在另一台笔记本电脑上启动服务器套接字时,它只是由于无效的启动字节错误而崩溃: 我如何正确编码程序以使其适用于所有笔记本电脑

这是我遇到的错误: Other laptops

My laptop

我试图更改编码,但是我不确定我必须在哪里更改。

Class Listener:   '
 def __init__(self):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server_address = (socket.gethostbyname(socket.gethostname()), 10000)
        self.sock.bind(self.server_address)
        print(f"LISTENER : {str(self.server_address[0])} port {str(self.server_address[1])}")




    def listen(self):
        self.sock.listen(1)
        while True:
            print("Connection Open")
            print("     Waiting for connections")
            self.connection, self.client_address = self.sock.accept()
            try:
                print(f"Connection from {str(self.client_address)}")
                while True:
                    data = self.connection.recv(1024)
                    if data:
                        message = str(data)
                        if not "print" in message.lower(): #This just checks if the client wants to print system infomation from the server
                            Validate(message)#this checks for a command the server have to do
                        else:
                            self.connection.sendall(pickle.dumps(self.computerinfomation))
                    else:
                        self.listen()
            except Exception as e:
                print(e)

我希望它也可以在其他笔记本电脑上使用,但我看不出为什么不会。

1 个答案:

答案 0 :(得分:1)

Furas提供了解决方案。

我改变了

message = str(data)

message = str(data, encoding="utf-8")

我在客户端也做过