gpt4 book ai didi

java - 发送 ObjectOutputStream 时出现 EOFException

转载 作者:可可西里 更新时间:2023-11-01 02:50:39 25 4
gpt4 key购买 nike

我正在尝试向运行在端口 80 上的服务器发送一个空白的 TCP 数据包,但是当服务器响应时它给了我一个 EOFException。

java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2624) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3099) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853) at java.io.ObjectInputStream.(ObjectInputStream.java:349) at me.adamstephenson.test.main.main(main.java:106)

ArrayList<String> results = getIPs();

for (String ip : results){
System.out.println(ip);

String pingip = ip;
pingip = pingip.replaceAll("[^\\d.]", "");
System.out.println(pingip);

Socket socket = null;
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
try {
socket = new Socket(pingip, 80);
oos = new ObjectOutputStream(socket.getOutputStream());

ois = new ObjectInputStream(socket.getInputStream()); // error here

String msg = "blank";
oos.write(msg.getBytes());
oos.flush();

//read the server response message
String message = (String) ois.readObject();

System.out.println(message);

ois.close();
oos.close();
socket.close();
} catch (ConnectException | EOFException e) {
System.out.println("Failed to connect to: "+pingip);
e.printStackTrace();
}


}

EOFException 是否意味着响应为空?

最佳答案

这意味着服务器在关闭套接字之前甚至没有创建ObjectOutputStream。可能你向它发送了一些它不理解的东西,也许它使用的应用程序协议(protocol)根本不涉及序列化。

毕竟 80 端口是为 HTTP 保留的。

关于java - 发送 ObjectOutputStream 时出现 EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43766021/

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