java数据输出流发送更多字节

标签 java

我有一台服务器监听端口和 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/

相关文章:

java - 使用 URI 类创建自定义 URI 方案

java - 为什么编译失败?

java - 对象映射的 jackson 序列化

java - Swing 组件未移动到 GridBagLayout 中所需的单元格

java - 使 WebStart Java 桌面应用程序在 Windows 和 Mac 系统启动时启动

java - 在Java中获取二维数组的数组长度

java - 如何获取并设置 "messaging provider"以便 JAXM 客户端调用异步 SOAP API?

java - 如何从 JNI 捕获的 Java 异常中获取消息

java - 使用 CriteriaBuilder 的 JPA 计数(*)。如何使用 CriteriaBuilder 检索 count(*) 列

Java 行集/数据访问对象失败