gpt4 book ai didi

java - Java ObjectInputStream提供了java.io.EOFException

转载 作者:行者123 更新时间:2023-12-03 12:07:12 25 4
gpt4 key购买 nike

我正在尝试从服务器向客户端发送文件名列表。在我第一次运行程序时,运行良好。当它要求我退出并且我键入no时,在java.io.EOFException行给出了Object file_names = objectInput.readObject();,这可能是什么问题?
服务器

do {
objectOutput = new ObjectOutputStream(connsock.getOutputStream());

List<String> file_names = new ArrayList<String>();
File[] files = new File("C:\\ServerMusicStorage").listFiles();
for (File file : files) {
if (file.isFile()) {
file_names.add(file.getName());
}
}
//send list to client
objectOutput.writeObject(file_names);
objectOutput.flush();
exitservice = fromClient.readUTF();
} while (exitservice != "noexit");
客户
objectInput = new ObjectInputStream(newclientSocket.getInputStream());

if (newclientSocket.isConnected()) {
System.out.println("Connected to server...");
boolean exit = false;
while (exit != true) {
System.out.println("<---Available files--->");
// 1 get list of files from server
Object file_names = objectInput.readObject();
file_list = (ArrayList<String>) file_names;
int count = 1;

for (int i = 0; i < file_list.size(); i++) {
System.out.println(count + ")" + file_list.get(i));
count++;
}
System.out.println("Exit? y/n");
String user_exit = inl.readLine();
if (user_exit.equals("y")) {
exit = true;
toServer.writeUTF("exit");
System.out.println("Exiting...");

} else {
exit = false;
toServer.writeUTF("noexit");
}

}
}
newclientSocket.close();

最佳答案

您在while条件下的测试是while (exitservice != "noexit");测试变量的指针,而不是其真实内容(这是Java的陷阱)。他们从不平等。
更改为:while (!"noexit".equals(exitservice));

关于java - Java ObjectInputStream提供了java.io.EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65702216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com