`
xuepengcheng
  • 浏览: 46731 次
  • 性别: Icon_minigender_1
  • 来自: 郴州
社区版块
存档分类
最新评论

菜鸟的EOFException

阅读更多
内部类BlockDataInputStream.的方法peekByte抛出的异常,意思就是到达了文件的末尾,程序却没有正常结束读取文件内容


Client:
  streamToServer.println(userName+";"+strPwd);  //向Server发送name与password;
  String frmServer = (String)streamFromServer;  //Client接收Server返回的信息;
  if(frmServer.equals("Welcome"))
  {
     new ClientInt(userName);   //start the chat screen;
     this.dispose();
  }

Server:
  msg = streamFromClient.readLine();     //接收Client的登录信息
  int ver = verify(msg);                 //验证信息从txt文件中读
  if(ver==1)
  {
     String colon = new String(";");
     int index = ((String)msg).lastIndexOf(colon);
     String userName = (String)msg.substring(0,index);
     if(!(vctrList.indexOf((String)userName)>0))
     {
       streamToClient.writeObject("Welcome");
       streamToClient.flush();
       vctrList.addElement((String)userName);
     }
--------------------------------------------
     else                          //为上过线的用户返回信息
     {
streamToClient.writeObject("Welcome");
streamToClient.flush();
     }
-------------------------------------------
  }


        int verify(String mesg)
{


try{
RandomAccessFile RAS = new RandomAccessFile("UserPwd.txt","r");

System.out.println(RAS.getFilePointer()+" "+RAS.length());

RAS.seek(0);
int i = 0;
String str = "";
while(!((RAS.getFilePointer())==(RAS.length())))  //getFilePointer:返回此文件中的当前偏移量。到此文件开头的偏移量(以字节为单位)
{

str = RAS.readLine();
if(str.equals(mesg))
{

System.out.println(RAS.getFilePointer()+" "+RAS.length());
ctr = 1;
break;
}

}//end of while

RAS.close();

}catch(Exception e){
System.out.println("Connect.java verify(String mesg)");
System.out.println("Connect.java 58 Exception Occurred:"+e);
}

return ctr;

}//end of verify()

解决这问题时花费时间很多,这就是经验的问题。引发这异常的问题点是寻到的并解决,可这问题点触发这异常里的过程却还不是很清楚。当Client发送登录信息时,Server接收并验证在验证函verify()中所使用的是RandoAccesFile类进行读取后流关闭。Hashtable vctrList(用于存贮在线用户)是问题的关键,当Client关闭时Server的vrtrList并没有删除对应用户,所以再次登录检验用户时,server端并没有相应的streamToClient.writeObject(),才引发java.io.EOFException。具本为什么这样我也很迷惑,没有相应的返回信息它会返回上一步再次读取登录信息吗?可文件流有关闭呀,且每次读前我都有从新定位的。看来Socket与线程还要好好读读。
分享到:
评论

相关推荐

    EOFException如何解决.md

    EOFException如何解决.md

    EOFException解决办法.md

    EOFException解决办法.md

    RabbitMq+springboot

    在本文中,我们将深入探讨如何将RabbitMQ与SpringBoot集成,以实现高效的消息队列系统。RabbitMQ是一款开源的消息代理和队列服务器,它使用AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中...

    jetty-io-9.4.43.v20210629-API文档-中英对照版.zip

    赠送jar包:jetty-io-9.4.43.v20210629.jar; 赠送原API文档:jetty-io-9.4.43.v20210629-javadoc.jar; 赠送源代码:jetty-io-9.4.43.v20210629-sources.jar; 赠送Maven依赖信息文件:jetty-io-9.4.43.v20210629....

    java.io.EOFException(解决方案).md

    项目中碰到的,记录一下解决方案

    mysql 异常com.mysql.jdbc.CommunicationsException

    本次异常的具体描述为:“Communications link failure due to underlying exception: **BEGINNESTED EXCEPTION** java.io.EOFException STACK TRACE: java.io.EOFException at com.mysql.jdbc.MysqlIO.readFully...

    Nginx + Websocket 实现推送

    Nginx + Websocket 实现推送 , 实现思路 : http://blog.csdn.net/shangmingtao/article/details/76639821 . 代码可以直接线上运行.

    电子商务交易平台信用体系建设研究整理.pdf

    在电子商务领域,信用体系的建设至关重要,因为它直接影响到交易的安全性和消费者的信任度。网络交易平台信用体系,简单来说,就是电商平台在政府引导下,与各方参与者共同建立的一套包含法规、评价标准、组织形式和...

    java异常处理

    - **编译时异常** (`Checked Exception`):这些异常在编译时会被检查,如果方法中可能会抛出此类异常,则必须在方法签名中声明,或者在方法体内通过 try-catch 块处理。 - **运行时异常** (`Runtime Exception`):...

    SICTF 2023 真题

    【标题】"SICTF 2023 真题"揭示了这是一场网络安全竞赛,CTF(Capture The Flag)是此类竞赛的常见形式,通常涉及逆向工程、密码学、网络攻防等多方面的技术挑战。SICTF(可能是某个特定组织或地区举办的网络安全...

    PdfUtils.java

    解决Could not load font file: C:\Windows\FONTS\mstmc.ttf 对应问题贴https://blog.csdn.net/guozhangjie1992/article/details/103679640

    hessdroid_android

    已经解决了第一次连接报:com.caucho.hessian.client.HessianConnectionException: 500: java.io.EOFException

    Flowable-BPMN操作流程部署启动源码

    Flowable是一款强大的、开源的工作流引擎,它基于BPMN 2.0标准,能够帮助企业或组织实现业务流程自动化。BPMN(Business Process Modeling Notation)是一种图形化表示业务流程的方法,它提供了丰富的符号来描绘各种...

    EOF.zip_EOF Matlab_EOF 分析_EOF分析_eof_matlab eof

    EOF,全称Empirical Orthogonal Functions(经验正交函数),是一种数据分析方法,常用于气象学、海洋学和地球物理学等领域,以降维处理和模式识别复杂数据。在Matlab环境中,EOF分析是一种强大的工具,可以帮助研究...

Global site tag (gtag.js) - Google Analytics