老师,键盘录入的时候报错,不知道哪里没对?麻烦看下。这个获取用户对象的方法这里也不是很理解,麻烦说下具体是什么意思?

下面是代码:
package com.bjsxt.entity;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;
public class client {
/**
* 1.创建Socket对象,用于连接服务器
* 2.获取输出流,传递的是user对象所以用(对象流)
* 3.创建user对象
* 4.创建的user对象发到服务器
* 5.获取输入流发过来是"正确或失败"(使用数据流进行获取),数据流用于存取基本数据类型和String类型方法
* 6.关闭
*
* @return
*/
public static User main(String[] args) throws IOException {
Socket client = new Socket("localhost", 8888);
ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());
User user =getUser();//new User("tent","123tx");
oos.writeObject(user);
DataInputStream dis = new DataInputStream(client.getInputStream());
System.out.println(dis.readUTF());
if (dis != null) {
dis.close();
}
if (oos != null) {
oos.close();
}
if (client != null) {
client.close();
}
//获取用户对象的方法
private static User getUser() {
Scanner input = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = input.next();
System.out.println("请输入密码");
String password = input.next();
//封装成User对象
return new User(userName, password);
}
}
}
package com.bjsxt.entity;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException, ClassNotFoundException {
System.out.println("服务器端已启动");
/**
* 1.创建ServerSocket对象
* 2.建立监听器accept
* 3.读对象,对象流
* 4.对用户名和密码进行验证,输出"正确或错误"通过数据流
* 5.关闭
*/
ServerSocket server =new ServerSocket(8888);
Socket ss = server.accept();
ObjectInputStream ois =new ObjectInputStream(ss.getInputStream());//
User u =(User)ois.readObject();//读对象的时候需要转换为User类型,目前是Object类型
System.out.println(ss.getInetAddress().getHostAddress()+"请求登陆:用户名"+u.getUserName()+"密码:"+u.getPassword());
String str ="";
if ("tent".equals(u.getUserName())&&"123tx".equals(u.getPassword())){
str ="登陆成功";
}else{
str ="对不起,账号密码不正确";
}
DataOutputStream dos =new DataOutputStream(ss.getOutputStream());
dos.writeUTF(str);
if(dos!=null){
dos.close();
}
if (ois!=null){
ois.close();
}
if (ss!=null){
ss.close();
}
}
}
package com.bjsxt.entity;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = -7626780842003520333L;//用于封装用户名和密码
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String userName, String password) {
this.userName = userName;
this.password = password;
}
public User() {
}
}