java关于ObjectInPutStream和objectoutputstream的问题

问题描述

我再写一个简单的即时通讯,在做登录功能是客户端第一次验证密码错误提醒时是验证成功的,可我在输入正确信息时程序就锁死,不知道什么意思啊,代码如下客户端:importjava.net.*;importjava.io.*;importjavax.swing.JOptionPane;importclient.FriendList;importcommon.Message;publicclassLoginSerivce{publicbooleanObjectlogin(Objecto){booleanb=false;try{ObjectOutputStreamoos=newObjectOutputStream(ConnectServer.s.getOutputStream());oos.writeObject(o);oos.flush();ObjectInputStreamois=newObjectInputStream(ConnectServer.s.getInputStream());Messagems=(Message)ois.readObject();if(ms.getMesType().equals("1")){b=true;}elseif(ms.getMesType().equals("2")){b=false;}}catch(Exceptione){e.printStackTrace();}returnb;}服务器如下:importjava.io.*;importjava.net.*;importDataBase.SqlHelper;importcommon.*;publicclassServerStartimplementsRunnable{ServerSocketss;SqlHelpersql;Sockets;@Overridepublicvoidrun(){//TODO自动生成的方法存根//while(true){try{ss=newServerSocket(9999);System.out.println("服务器正在监听9999端口");while(true){s=newSocket();s=ss.accept();ObjectInputStreamois=newObjectInputStream(s.getInputStream());Userus=(User)ois.readObject();System.out.println(us.getUserId()+""+us.getPasswd());//如果信息类型为“0”,即为登陆请求if(us.getType().equals("0")){sql=newSqlHelper();Messagems=newMessage();ObjectOutputStreamoos=newObjectOutputStream(s.getOutputStream());oos.flush();//如果不存在用户ID的情况if(!sql.login(us.getUserId(),us.getPasswd())){ms.setMesType("2");oos.writeObject(ms);oos.flush();System.out.println("用户不存在");}//可户端登陆成功的情况elseif(sql.login(us.getUserId(),us.getPasswd())){ms.setMesType("1");oos.writeObject(ms);ClientConnThreadcct=newClientConnThread(s);ManageClientThread.addClientThread(us.getUserId(),cct);cct.start();}}}简单的说就是通过发送对象流进行数据库验证,第一次故意输错验证信息是可以成功验证的,但我点确定后第二次从新输入正确信息时程序就卡死,也不报错,貌似在等待数据,求大神帮助啊!!!!!!

时间: 2024-12-04 00:40:25

java关于ObjectInPutStream和objectoutputstream的问题的相关文章

java io系列05之 ObjectInputStream 和 ObjectOutputStream

本章,我们学习ObjectInputStream 和 ObjectOutputStream ObjectInputStream 和 ObjectOutputStream 介绍 ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持.创 建"文件输出流"对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对"基本数据或对象"的持久存储: 当我们需要读取这些存

java io学习(四) ObjectInputStream 和 ObjectOutputStream

本章,我们学习ObjectInputStream 和 ObjectOutputStream ObjectInputStream 和 ObjectOutputStream 介绍 ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持. 创建"文件输出流"对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对"基本数据或对象"的持久存储:当我们需要读取这些存储

Java IO: 序列化与ObjectInputStream、ObjectOutputStream

作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和ObjectOutputStream. Serializable 原文链接 如果你希望类能够序列化和反序列化,必须实现Serializable接口,就像所展示的ObjectInputStream和ObjectOutputStream例子一样. 对象序列化本身就是一个主题.Java IO系列教程主要关注

JAVA IO系列----ObjectInputStream和ObjectOutputStream类

·ObjectInputStream和ObjectOutputStream这两个包装类,用于从底层输入流中读取对象类型的数据和对象类型的数据写入到底层输出流.将对象中所有成员变量的取值保存起来就等于保存了对象,将对象中所有成员变量的取值还原就相等于读取了对象. ·ObjectInputStream和ObjectOutputStream类所读写的对象必须实现了Serializable接口.对象中的transient(一种标记,表示变量是临时的)和static类型的成员变量不会被读取和写入.这两个类

Java IO--对象序列化Serializable、ObjectOutputStream、ObjectInputStream、transient

1.对象序列化是什么? 一个对象产生之后实际上是在内存中为其开辟了一个存储空间,方便存储信息. 定义可序列化的类: import java.io.Serializable ; public class Person implements Serializable{ private String name ; // 声明name属性,但是此属性不被序列化 private int age ; // 声明age属性 public Person(String name,int age){ // 通过构造

我的Java开发学习之旅------>Java使用ObjectOutputStream和ObjectInputStream序列号对象报java.io.EOFException异常的解决方法

今天用ObjectOutputStream和ObjectInputStream进行对象序列化话操作的时候,报了java.io.EOFException异常. 异常代码如下: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554) at java.io.ObjectInputStream.readObject0(ObjectInputSt

ObjectInputStream ObjectOutputStream

object|stream ObjectOutputStream和ObjectInputStream --ObjectOutputStream ObjectInputStream 类恢复以前使用 ObjectOutputStream 类序列化后的基本类型数据和对象. ObjectOutputStream 和 ObjectInputStream 分别利用 FileOutputStream 和 FileInputStream 能支持应用程序实现对象图象的稳定存储. ObjectInputStream

Java objectOutputStream的用法

ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInputStream 读取(重构)对象.通过在流中使用文件可以实现对象的持久存储.如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象. 只能将支持 java.io.Serializable 接口的对象写入流中.每个 serializable 对象的类都被编码,编码内容包括类名和类签名.对象的字段值和数组值,以及从初始对象中引用的其他所有对象的闭包. w

求一个例子:java socket 采用ObjectInputStream序列化收发文件例子

问题描述 求一个例子:java socket 采用ObjectInputStream序列化收发文件例子 求一个:java socket 采用ObjectInputStream序列化收发文件例子求一个:java socket 采用ObjectInputStream序列化收发文件例子 解决方案 我参考 这个 例子 解决我的问题 http://bbs.csdn.net/topics/200033850 解决方案二: http://www.cnblogs.com/feiyun126/p/3921466.