我正在开发一个服务器-客户端应用程序。服务器用 Java (PC) 完成,客户端用 Java 完成。(安卓)
我在以下实现中遇到问题:
服务器抓取位图 -> 原始字节 -> TCP -> 客户端(异步流
现在字节数组在客户端以多个不同长度的数据包传递。所以要正确处理这个问题,我应该使用前缀方法。
要使用前缀模式,您需要将消息的长度(以字节为单位)发送为四个字节,然后发送消息
我的代码
public void sendScreenshot(byte[] buffer) throws IOException {
OutputStream os = socket.getOutputStream();
os.write(buffer.length + 1);
os.write((byte) 0);
os.write(buffer, 0, buffer.length);
os.flush();
}
在 VB.net 中,这是通过以下代码实现的:
Private Sub dat(ByVal dat As String)
Dim nstream As NetworkStream = sock.GetStream()
Dim bit As Byte() = System.Text.Encoding.UTF8.GetBytes(dat)
Dim bw As New BinaryWriter(sock.GetStream())
bw.Write(bit.Length + 1)
bw.Write((byte)command)
bw.Write(bit, 0, bit.length)
End Sub
欢迎在 Java 中实现它的任何帮助?