小编akk*_*kas的帖子

Python 等效于 Java DataInputStream.readUTF()

我正在开发一个与基于 Python 的服务器通信的 Android 应用程序。我正在使用套接字进行通信。Android 应用程序使用 DataOutputStream.writeUTF() 以 JSON 格式发送数据。发送数据的代码如下

    DataOutputStream dataOutputStream = new DataOutputStream(
                   socket.getOutputStream());
    JSONObject jsonData=new JSONObject();
    jsonData.put("request", "signin");
    dataOutputStream.writeUTF(jsonData.toString());
Run Code Online (Sandbox Code Playgroud)

我面临的问题是 DataOutputStream.writeUTF() 在数据的开头写入两个字节,这是发送的数据长度。为了在服务器端接收数据,我必须先进行 2 次读取以获取数据长度,然后再进行两次读取以获取实际数据。Python中接收数据的代码如下

    data = conn_stream.recv(2)
    data_length=struct.unpack('>H',data)[0]
    data=conn_stream.recv(data_length)
Run Code Online (Sandbox Code Playgroud)

是否有任何与 Java DataInputStream.readUTF() 等效的 Python?

python sockets android

2
推荐指数
1
解决办法
2663
查看次数

标签 统计

android ×1

python ×1

sockets ×1