我尝试将文件作为字节数组读取并通过网络套接字连接发送, 我在从文件读取之后(在发送之前)打印了字节的值,并在从socket接收后打印了字节值...它是不同的!收到错误的值,我不知道为什么
发送前的样本字节: 21, 0, 52, 0 接收后的样本字节: -8, -1, -4, -1
我使用write(byte [] b)发送了字节;的OutputStream类 和read(byte [] b,int off,int len)接收的字节数;的InputStream类。
任何人都可以帮助我吗?
答案 0 :(得分:1)
你可以尝试
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]
答案 1 :(得分:0)
小心处理字节和字符是可以互换的。字节已签名!