我正在尝试连接到服务器,然后向其发送HTTP请求(在这种情况下为GET).这个想法是请求一个文件,然后从服务器接收它.

它应同时适用于文本文件和二进制文件(例如imgs).我对文本文件没有任何问题,它可以完美工作,但是对二进制文件有一些麻烦.

首先,我声明一个BufferedReader(用于读取标题和文本文件)和一个DataInput流:

BufferedReader in_text = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

DataInputStream in_binary = new DataInputStream(

new BufferedInputStream(socket.getInputStream()));

然后,我用in_text读取标题,并发现它是文本文件还是二进制文件.如果是文本文件,我可以在StringBuilder中正确读取.如果是二进制文件,我声明一个byte [filesize]并存储in_binary的以下内容.

byte[] bindata = new byte[filesize];

in_binary.readFully(bindata);

而且它不起作用.我收到一个EOFException.

我以为in_binary可能仍在流的第一个位置,因此它尚未读取标头.因此,我捕获了标头的长度,并跳过了in_binary中的字节.

byte[] bindata = new byte[filesize];

in_binary.reset();

in_binary.skip(headersize);

in_binary.readFully(bindata);

而且还是一样.

可能会发生什么?

谢谢!

PD:我知道我可以使用URLConnection等.那不是问题.

java接收二进制数据_java-从套接字读取二进制数据相关推荐

  1. java在mysql读取数据库数据库数据_JAVA的JDBC连接数据库以及读取数据库数据

    一.下载数据库JDBC驱动 1.1:Mysql驱动 https://dev.mysql.com/downloads/connector/ 下载得到的是一个压缩包,解压后到里面寻找文件:mysql-co ...

  2. 解决“无法从套接字读取更多数据”

    重启下Oralce服务即可. 转载于:https://www.cnblogs.com/fkeyta/p/9153297.html

  3. java套接字客户端_使用Java从客户端套接字读取数据(Read data from a client socket in Java)...

    使用Java从客户端套接字读取数据(Read data from a client socket in Java) 我编写了从客户端套接字发送/接收数据的代码. 发送数据步骤已成功完成,但是当我想从套 ...

  4. oracle无法套接字读取,【[求助]无法从套接字读取更多的数据】-Oracle论坛-ZOL中关村在线...

    数据库操作失败,SQL[alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'] Caused by: java.sql.SQLExcept ...

  5. nodejs 从TCP套接字读取并解析数据

    我们在nodejs的应用代码里,监听TCP socket的data事件.当套接字上有数据到达时,注册的事件处理函数被回调. 可读取的数据以ArrayBuffer的格式显示在Visual Studio ...

  6. 原始套接字发送ARP数据包

    什么是ARP协议 ARP协议是Address Resolution Protocol(地址解析协议)的缩写.在局域网中,网络中实际传输的是数据帧,数据帧里面有目的主机的MAC地址.但这个目的MAC地址 ...

  7. 【操作系统】磁盘转速速度为7200PRM,平均寻道时间为6ms,每磁道存储1MB数据。如果数据块大小为4KB,则读取一块数据时,数据平均传输速率为

    磁盘转速速度为7200PRM,平均寻道时间为6ms,每磁道存储1MB数据.如果数据块大小为4KB,则读取一块数据时,数据平均传输速率为 背景知识 7200PRM = 7200r/min = 120r/ ...

  8. java使用原始套接字技术进行数据包截获_Linux零拷贝技术,看完这篇文章就懂了...

    本文讲解 Linux 的零拷贝技术,云计算是一门很庞大的技术学科,融合了很多技术,Linux 算是比较基础的技术,所以,学好 Linux 对于云计算的学习会有比较大的帮助. 为什么需要零拷贝 传统的 ...

  9. Java基础23 网络编程 socket套接字流 TCP传输总结

    一.网络编程的概念 1.计算机网络:将不同地区的计算机,使用网络来进行连接 实现不同地区的数据的交互与共享(互联时代) 2. 网络编程的三要素:IP地址 端口号 协议 3. ip地址:是在网络连接中 ...

最新文章

  1. XPE一般性组件整理
  2. 亚马逊外包平台的50万劳工:人工智能的背后,无尽数据集的建造
  3. excel可视化图表插件_Axure 教程:利用图表前端插件实现高级可视化图表
  4. 安装SQL2005只有配置工具或 错误码是29506 解决方案
  5. 【转】C/C++的64位整型 不同编译器间的比较
  6. 又烧一辆!蔚来ES8车库夜里起火 两个半小时才熄灭:现场惨烈
  7. poj 3243 Clever Y(Baby-Step Giant-Step)
  8. html 正方形代码,SVG rect
  9. caffe里的blocking_queue.hpp与.cpp干了点什么呢???
  10. Java文件的写入与读出
  11. MAC下 安装sqlmap教程
  12. Java解析XML并自动写入Excel
  13. python汉字排序_Python中文排序(转载)
  14. Windows清理助手ARSWP
  15. 在淘宝做前端的这三年 — 第二年
  16. Springsecurity+cas整合后无法单点登出
  17. 微信小程序创建项目后无法显示内容
  18. No module named 'torchvision.ops'的解决办法
  19. Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网
  20. Ubuntu 命令行常见指令

热门文章

  1. Lecture 13 Amortized Analysis
  2. [LeetCode] 3. Longest Substring Without Repeating Characters 题解
  3. Django 入门项目案例开发(中)
  4. Win2003磁盘分区调整
  5. python入门(5)使用文件编辑器编写代码并保存执行
  6. [转] 64位windows下添加postgreSQL odbc数据源
  7. (原)用pixi.js 实现 方块阵点击后原地自转效果
  8. Linux运维系统工程师系列---04
  9. 旧金山字体_旧金山建筑业的兴衰。 施工趋势与历史
  10. 脚本 api_从脚本到预测API