DataInputStream EOFEXCEPTION
在编写socket通信时,服务端使用了DataInputStream.readUTF()读取字节流时,出现EOFEXCEPTION
原因是客户端没有使用DataOutputStream.writeUTF()来传输数据流,而是使用OutputStream.write()方法写入字节数组。
导致服务端接收到的字节流的头两个字节没有指明字节流的长度。解决办法之一是:
使用OutputStream.write(byte[] b)时;需要先写入两个字节代表字节流长度
OutputStream out = socket.getOutputStream();
String str = "北京码农_DataInputStream"; // 先发送无符号数
int length = str.length();
byte[] b = new byte[2];
b[0] = (byte) (length>>8);
b[1] = (byte) length ;
out.write(b); // 再发送字节数组
out.write(str.getBytes());
out.write(new byte[]{(byte)(15<<4)}); out.flush();
另外,复习下java平台基本数据类型长度的知识:
byte 1字节 char 2字节 short 2字节 int 4字节 float 4字节 long 8字节
DataInputStream EOFEXCEPTION的更多相关文章
- socket编程报异常java.io.EOFException
		一个客户端连接服务器的小程序,服务器端可以正常读取客户端发来的数据 但是当客户端关闭时,服务端也关闭了,并且抛出如下的异常: java.io.EOFException at java.io.DataI ... 
- java io系列14之 DataInputStream(数据输入流)的认知、源码和示例
		本章介绍DataInputStream.我们先对DataInputStream有个大致认识,然后再深入学习它的源码,最后通过示例加深对它的了解. 转载请注明出处:http://www.cnblogs. ... 
- Java Scoket之java.io.EOFException解决方案
		Java Scoket之java.io.EOFException解决方案 Socket接收数据的时候,常常会抛出java.io.EOFException异常,也没有明确的原因和提示,在网上搜搜,很 ... 
- Java之IO(四)DataInputStream和DataOutputStream
		转载请注明源出处:http://www.cnblogs.com/lighten/p/6986155.html 1.前言 DataInputStream和DataOutputStream分别继承了Fil ... 
- 解决异常断电导致的: CorruptSSTableException: java.io.EOFException
		问题产生 服务器重启,导致cassandra损坏,整个集群不可用.所使用的cassandra为2.1.9版本. 问题描述 运行启动命令,报错如下: DEBUG :: All segments have ... 
- Android学习--自己在使用HttpConnection时遇到的EOFException
		在学习第一行代码第14章酷欧天气的时候,HttpUtil类中的sendHttpRequest方法发出请求,然后返回响应信息,但是出现了EOFException异常,代码如下: HttpURLConne ... 
- 严重: Exception loading sessions from persistent storage  Java.io.EOFException
		tomcat启动时报此异常,但web页均能正常运行:对程序影响不大. /*具体原因时tomcat--work--(你当前运行的工程名)--session.ser*/删除即可解决 分析: EOFExce ... 
- java.io.EOFException
		错误代码如下: 严重: IOException while loading persisted sessions: java.io.EOFException java.io.EOFException ... 
- socket通信之eofexception
		方案一: 用read()将不会抛出异常.因为read是block方式的. readInt()抛出异常的原因(我遇到的)是对方在该端口没有消息发送. 方案二: socket的端口被阻塞了 ,也就是我们需 ... 
随机推荐
- 分布式监控系统Zabbix3.2给异常添加邮件报警
			在前一篇 分布式监控系统Zabbix3.2跳坑指南 中已安装好服务端和客户端,此处客户端是被监控的服务器,可能有上百台服务器.监控的目的一个是可以查看历史状态,可以对比零晨和工作区间数据的对比,以便后 ... 
- Delphi 7中对StretchBlt, StretchDIBits, DrawDibDraw, BitBlt 的性能测试 - 原创
			我的天哪,上一篇博文是2年前的事情了.看来又虚度了2年光阴,继续学习... 本文算是副产品,正品是利用FFmpeg从任意视频中生成GIF片段的小程序,等写完了再发.不为别的,只是为了给儿子做动图,且看 ... 
- Tosska SQL Tuning Expert 工具优化SQL语句
			对于SQL开发人员和DBA来说,根据业务需求写出一条正确的SQL很容易.但是SQL的执行性能怎么样呢?能优化一下跑得更快吗?如果不是资深的DBA,估计很多人都没有信心. 幸运的是,自动化优化工具可以帮 ... 
- caioj 1236 最近公共祖先  树倍增算法模版 倍增
			[题目链接:http://caioj.cn/problem.php?id=1236][40eebe4d] 代码:(时间复杂度:nlogn) #include <iostream> #inc ... 
- 51Nod1136--欧拉函数
			1136 欧拉函数 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命 ... 
- UWP 共享文件——接收者
			UWP上共享,分为接收者(别人共享数据给你,你接收了,然后在做你的处理)和发送者(你给别人发送数据,就像你的App支持图片共享到微信好友或者朋友圈那样,虽然UWP上的微信并不支持这样子) 很简单(参考 ... 
- 关于AJAX使用中出现中文乱码的问题
			自己初学AJAX,遇到一个棘手的bug就是xmlHttp.open("get",url,false);url里面有中文,结果出现乱码.不过最后在百度,和诸位博主的帮助下,成功解决了 ... 
- 【译】使用Jwt身份认证保护 Asp.Net Core Web Api
			原文出自Rui Figueiredo的博客,原文链接<Secure a Web Api in ASP.NET Core> 摘要:这边文章阐述了如何使用 Json Web Token (Jw ... 
- Python爬虫(十六)_JSON模块与JsonPath
			本篇将介绍使用,更多内容请参考:Python学习指南 数据提取之JSON与JsonPATH JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它是的人们很容易 ... 
- Bayan 2015 Contest Warm Up D题(GCD)
			D. CGCDSSQ time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ... 
