在不知道流的长度下,怎样判断从socket中读取的字节流结束?
来源:互联网 发布:知柏地黄丸 肾炎 编辑:程序博客网 时间:2024/05/29 15:19
我尝试过使用read() = -1这种方法来判断是否读完字节流
- DataInputStream in = new DataInputStream(socket.getInputStream());
- ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
- int read = 0;
- while ( (read = in.read()) != -1 ) {
- swapStream.write(read);
- }
结果还是不行,如果socket没有接收到数据,它不会返回-1,所以这个循环就一直在等着。。直到把socket关闭才会退出循环。。
后来我使用了read(b, off, len)这个方法,还是不行
- DataInputStream in = new DataInputStream(socket.getInputStream());
- ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
- int read = 0;
- byte[] buff = new byte[100];
- while ( (read = in.read(buff, 0, 100)) > 0 ) {
- swapStream.write(buff, 0, read);
- }
请各位指教下,不胜感谢
问题补充:
其实我是这样做的
ServerSocket server = new ServerSocket();
while (true) {
socket = server.accept();
new TCPThread(socket); //新建一个线程处理字节流
}
TCPThread里的就是我上面贴的读取字节流代码,我是想用户每发送一次数据后,可以处理这些数据。然后不想发送了,才关掉socket连接
- 在不知道流的长度下,怎样判断从socket中读取的字节流结束?
- socket输入流中读取一个固定长度的字节
- 一个不给定长度的字符串数组如何判断结束
- 11_根据变量的类型从输入流中提取相应长度的字节.cpp
- 判断字符串的字节长度
- Java 在不知道Array长度的情况下 动态构造String Array
- Socket读取报文(字节流)不会退出循环的解决方法
- js从字符串中截取10个字节的长度
- 字节流中判断消息的边界
- 在java语言中在byte 字节流读取大于127的情况处理
- C++中字节的长度
- 如何获得通过socket传过来的字节流的长度
- c++读取文件--结束条件的判断
- Java从文件中读取字节数据的固定套路
- 在JAVA中,怎样求字符串的长度?
- 怎样在JSTL标签中获得集合的长度
- PHP判断中文字符串的长度和字节长度
- PHP判断中文字符串的长度和字节长度
- 如何获得通过socket传过来的字节流的长度
- 中缀表达式转为后缀表达式
- 汇编代码创建从软盘启动的boot loader
- 由一道题来看java初始化顺序
- struts2.1.8.1中datetimepicker标签的使用方法
- 在不知道流的长度下,怎样判断从socket中读取的字节流结束?
- 09校内网、人人网、千橡公司笔试题
- 一些特效基础——视频讲解
- XMLHttp连续调用SEND需要注意的问题
- 解决QTP崩溃问题
- ASUS Windiws 7 升級問題總整理
- 汇编代码写软盘boot loader(包括安装程序)
- 用SVN+Ant实现基于产品的项目代码管理
- 485总线学习笔记