问题描述
我再写一个简单的即时通讯,在做登录功能是客户端第一次验证密码错误提醒时是验证成功的,可我在输入正确信息时程序就锁死,不知道什么意思啊,代码如下客户端: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();}}}简单的说就是通过发送对象流进行数据库验证,第一次故意输错验证信息是可以成功验证的,但我点确定后第二次从新输入正确信息时程序就卡死,也不报错,貌似在等待数据,求大神帮助啊!!!!!!