Java 在Python服务器和Android客户端之间使用套接字进行操作

Java 在Python服务器和Android客户端之间使用套接字进行操作,java,android,python,sockets,Java,Android,Python,Sockets,我试图通过TCP套接字从Python服务器向Android客户端发送复杂的可变数据量 由于我发送的数据量可变,因此我必须在数据前面加上消息长度,然后在Android端,我必须先读取该前缀,然后以流的形式读取这些字节数。 我说得对吗 下面是我在服务器(Python)端的工作方式: 但是我的Java非常弱,我不知道如何在客户端接收它 有什么帮助吗?没那么难,伙计,首先你必须发送你想要发送的数据的大小,作为整型/长型值,没有字符串。其次,在客户端连接到服务器之后,获取(读取)一个int/long值,该

我试图通过TCP套接字从Python服务器向Android客户端发送复杂的可变数据量

由于我发送的数据量可变,因此我必须在数据前面加上消息长度,然后在Android端,我必须先读取该前缀,然后以流的形式读取这些字节数。
我说得对吗

下面是我在服务器(Python)端的工作方式:

但是我的Java非常弱,我不知道如何在客户端接收它


有什么帮助吗?

没那么难,伙计,首先你必须发送你想要发送的数据的大小,作为整型/长型值,没有字符串。其次,在客户端连接到服务器之后,获取(读取)一个int/long值,该值指示应该发送的数据量,然后等待x字节。虽然我建议您只发送带有
\r
的字符串形式的消息,但在客户端读取一行数据,直到到达
\r
,这样您就可以在开始时忽略数据的大小

在java中,你可能需要这些人

void Connect throws Exception{
DataInputStream dis;
DataOutputStream dos;
Socket s=new Socket("176.12.0.36",8903);//to connect address,port
dis=new DataInputStream(s.getInputStream());
dos=new DataOutputStream(s.getOutputStream());
//sending anything to the server with dos
int _sizeOfMessage=dis.readInt();//sends int value from server, no string
byte[] _data=new byte[_sizeOfMessage];
dis.read(_data);//filling the buffer
//do some business with _data
}

不是很难,伙计,首先你必须发送你想要发送的数据的大小作为整型/长型值,没有字符串。其次,在客户端连接到服务器之后,获取(读取)一个int/long值,该值指示应该发送的数据量,然后等待x字节。虽然我建议您只发送带有
\r
的字符串形式的消息,但在客户端读取一行数据,直到到达
\r
,这样您就可以在开始时忽略数据的大小

在java中,你可能需要这些人

void Connect throws Exception{
DataInputStream dis;
DataOutputStream dos;
Socket s=new Socket("176.12.0.36",8903);//to connect address,port
dis=new DataInputStream(s.getInputStream());
dos=new DataOutputStream(s.getOutputStream());
//sending anything to the server with dos
int _sizeOfMessage=dis.readInt();//sends int value from server, no string
byte[] _data=new byte[_sizeOfMessage];
dis.read(_data);//filling the buffer
//do some business with _data
}