当前位置:首页 > 开发 > 编程语言 > 网络编程 > 正文

socket通信遇到EOFException

发表于: 2015-01-07   作者:肆无忌惮_   来源:转载   浏览:
摘要: java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:

java.io.EOFException

at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)

at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)

...

用手机连接电脑的ServerSocket的时候,

在将inputstream包装成ObjectInputStream的时候,一直死循环的抛这个异常。

用电脑写个客户端测试又不抛异常。折腾几个小时,感谢此文,才解决了。

原文地址:

http://blog.csdn.net/hncsy403/article/details/7848785

最近在eclipse开发基于socket通讯方面,出现了一个错误
java.io.StreamCorruptedException: invalid stream header: 64000000
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
 
然后我开始查找解决方法,其中我发现有两种原因,可能会出现这个错误
1.在初始化链接时,如果先创建输入流,再创建输出流可能会报错,正确创建顺序如下:
  ObjectOutputStream   output=new   ObjectOutputStream(socket.getOutputStream()); 
  ObjectInputStream   input=new   ObjectInputStream(socket.getInputStream()); 
 
2.很不幸,我的程序当时的创建顺序是同上的,也就是说不是以上的原因,那是什么原因呢,相信很多网友也不是上述原因,
经过各种排错,发现原因竟然是socket的端口被阻塞了,也就是我们需要更换端口号来解决,具体做法如下:
例如我之前在一个properties里面的
HOST=localhost
PORT=8888
我们只需要换成8000,就可以解决问题
实际上是
serverSocket = new ServerSocket(8000);

socket通信遇到EOFException

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
之前一直想自己搞把C#的Socket代码,一直没有下手,今晚终于实践了一把。现把流程编写出来,以备后
1.Soket发展史以及它和tcp/ip的关系 七十年代中,美国国防部高研署(DARPA)将TCP/IP的软件提供给加利
1:ServerSocket。 构造方法:ServerSocket(int port) : 创建一个绑定端口号的服务器 accept()
前段时间学习了通信机制,小组做了一个仿QQ的聊天工具,能登录,注册,加好友,私聊,群聊,能玩通
今天我们介绍android下的socket通信,并编写一个小程序: android作为客户端,通过socket发送数据到
1.Soket发展史以及它和tcp/ip的关系 七十年代中,美国国防部高研署(DARPA)将TCP/IP的软件提供给加利
最近一段时间在学习了SOCKET,下面是程序源代码,都是在VC6.0环境下,用WIN32控制台程序写的: 1.TC
我 们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进
随着Web技术的发展,Socket通信逐渐被人们遗忘。然而最近Socket应用却又越来越多。尤其是中国移动,
一.通信中常用到的命令行命令 1.查看你的电脑与其他服务器的连接信息-->>netstat -an 当你在命
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号