gpt4 book ai didi

python - 在套接字传输中接收额外的字节

转载 作者:行者123 更新时间:2023-12-03 11:58:41 24 4
gpt4 key购买 nike

因此,我编写了一个程序,该程序使用 python 套接字库通过 wifi 直接在 raspi 和 android 手机之间进行通信。 super 简单的rn,目前手机发送“Whats up!” pi 接收它并打印它接收到的内容。它可以工作,只是它非常不可靠,而且我在消息中收到了一些奇怪的额外字节。
发送“Whats up!”时我收到b’\xac\xed\x00\x05t\x00\tWhats up!’或者b’\xac\xed\x00\x05’我假设第二个结果是由于丢包造成的,但我不确定消息开头的所有内容是什么。当我将消息更改为“Whats up!测试一!!”我明白了b’\xac\xed\x00\x05t\x00\x12Whats up! Test 1!!’ (请注意,现在添加了 \x12 )
谁能向我解释这是什么?它是套接字协议(protocol)的一部分吗?我如何在我的程序中解释它?
作为引用,在我的 pi 上运行的程序如下所示:

import socket;


server = socket.socket();
host = "192.168.4.1";
port = 4444;

server.bind((host,port));

server.listen();

client, addr = server.accept();
print (str(client.recv(2056)));

client.close();
这也是我的android客户端代码,以防万一
    public void runClient() throws IOException {
socket = new Socket();
socket.setReuseAddress(true);
tcpSocketManager.addTextToScreen("Starting Client Socket " + groupOwnerAddress + " " + port);
socket.connect((new InetSocketAddress(groupOwnerAddress, port)), 1000);
OutputStream os = socket.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(new String("Whats up!"));

oos.close();
os.close();
socket.close();
}

最佳答案

您需要使用 OutputStreamWriter而不是 ObjectOutputStream .后者用于编写 Java 序列化对象。
我写 Java 已经有两年了,但我认为这是正确的。

OutputStreamWriter writer = new OutputStreamWriter(os);
writer.write("What's up!");

关于python - 在套接字传输中接收额外的字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64668584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com