我有一台服务器监听端口和 IP,还有一个客户端将连接到该服务器。
DataInputStream meterin=new DataInputStream(socket.getInputStream);
DataOutputStream modemds=new DataOutputStream(modems.getOutputStream);
现在服务器正在此处发送一些数据:(CA F0 00 00 00 00 00 00 00 3A)。但是当我将其读为
int c;
byte bt[]=new byte[11]
c=meterin.read(bt,0,11)`
System.out.println("bytes"+c) // it is returning 10 bytes
modemds.write(bt,0,c)
但在客户处我得到了。 (CA F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00)。 即使向上读取 10 个字节,也超过了 10 个字节。
最佳答案
您不能假设读取将填满缓冲区。请参阅 readFully() 作为替代方案,或者循环直到获得所需的所有数据。
关于java数据输出流发送更多字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11913555/