在java的套接字流中接收错误的字节值



我尝试读取一个文件作为字节数组,并通过网络通过套接字连接发送它,我从文件中读取后(在发送之前)打印了字节的值,并在从socket接收后打印了字节的值…这是不同的!我不知道为什么

发送前的采样字节:21日,0,52岁的0接收后的样本字节数:8日,-1,4,1

我使用write(byte[] b)发送字节;输出流类并使用read(byte[] b, int off, int len)接收字节;

有人能帮我吗?

你可以试试

ServerSocket ss = new ServerSocket(0);
Socket c = new Socket("localhost", ss.getLocalPort());
byte[] bytes = {21, 0, 52, 0};
c.getOutputStream().write(bytes);
c.close();
byte[] bytes2 = new byte[4];
Socket s = ss.accept();
ss.close();
new DataInputStream(s.getInputStream()).readFully(bytes2);
System.out.println(Arrays.toString(bytes2));
s.close();

打印

[21, 0, 52, 0]

小心将字节和字符视为可互换的。字节是有符号的!

相关内容

  • 没有找到相关文章

最新更新