老师您好请问下这个问题怎么解决 网上百度查没找到解决办法
package com.bjsxt.server;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TestServerV3 {
public static void main(String[] args) {
System.out.println("服务器已启动");
//创建ServerSocket对象
ServerSocket serverSocket = null;
ObjectInputStream objectInputStream = null;
DataOutputStream dataOutputStream = null;
try {
serverSocket = new ServerSocket(3333);
//监听客户端
Socket client = serverSocket.accept();
//获取对象输入流
objectInputStream = new ObjectInputStream(client.getInputStream());
String massage="";
//判断是否登录成功
User user = (User)objectInputStream.readObject();
if(user.getName().equals("xpx")&&user.getPassword().equals("123")) {
massage="登录成功";
}else {
massage="密码错误请重新登录";
}
dataOutputStream = new DataOutputStream(client.getOutputStream());
dataOutputStream.writeUTF(massage);
System.out.println("IP地址:"+client.getInetAddress().getHostAddress());
System.out.println("主机名:"+client.getInetAddress().getHostName());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}finally {
if(dataOutputStream!=null) {
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(objectInputStream!=null) {
try {
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(serverSocket!=null) {
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
报错信息
Exception in thread "main" java.lang.ClassCastException: com.bjsxt.client.User cannot be cast to com.bjsxt.server.User
at com.bjsxt.server.TestServerV3.main(TestServerV3.java:31)
package com.bjsxt.client;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;import java.io.ObjectInputStream.GetField;
import java.net.Socket;
import java.util.Scanner;
public class TestClientV3 {
public static void main(String[] args) {
Socket client = null;
ObjectOutputStream objectOutputStream = null;
DataInputStream dataInputStream = null;
try {
//创建Socket对象
client = new Socket("127.0.0.1", 3333);
//获取输出流
objectOutputStream = new ObjectOutputStream(client.getOutputStream());
objectOutputStream.writeObject(getUser());
//获取输入流
dataInputStream = new DataInputStream(client.getInputStream());
System.out.println(dataInputStream.readUTF());
} catch (IOException e) {
e.printStackTrace();
//关闭流
}finally {
if(dataInputStream!=null) {
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(objectOutputStream!=null) {
try {
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(client!=null) {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 通过键盘录入用户登录信息
* @return
*/
public static User getUser() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入用户密码:");
String password = scanner.next();
return new User(username,password);
}
}
报错信息
java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at com.bjsxt.client.TestClientV3.main(TestClientV3.java:28)