因此,我正在构建此套接字应用程序,它在我的计算机上工作正常。但是,当我在另一台笔记本电脑上启动服务器套接字时,它只是由于无效的启动字节错误而崩溃: 我如何正确编码程序以使其适用于所有笔记本电脑
这是我遇到的错误: Other laptops。
我试图更改编码,但是我不确定我必须在哪里更改。
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)
我希望它也可以在其他笔记本电脑上使用,但我看不出为什么不会。
答案 0 :(得分:1)
Furas提供了解决方案。
我改变了
message = str(data)
到
message = str(data, encoding="utf-8")
我在客户端也做过