我正在开发一个与基于 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?