gpt4 book ai didi

java - 创建 ObjectInputStream 后无法看到打印消息

转载 作者:行者123 更新时间:2023-12-02 06:50:52 27 4
gpt4 key购买 nike

我编写了以下程序。如您所见,我在创建 ObjectInputStream 对象 ois 后放置了一条打印消息。我有一个在端口 9090 上打开的服务器。如您从上面的 netstat 消息中看到的

sudo netstat -al | grep 9090
tcp6 0 0 [::]:9090 [::]:* LISTEN

我不知道为什么屏幕上会显示打印消息。

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.ClassNotFoundException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
public static void main(String[] args) {
int count = 0;
try {
/*
* Create a connection to the server socket on the server application
*/
InetAddress address = InetAddress.getByName("localhost");
Socket socket = new Socket(address, 9090);

/*
* Read and display the response message sent by server application
*/
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
System.out.println("Created client socket and Input Stream Reader");
while (true) {
if (count < 1000) {
String message = (String) ois.readObject();
System.out.println("OFMessage: " + message);
count++;
} else {
break;
}
}
ois.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}

最佳答案

ObjectInputStream 的构造函数从流中读取 - 基本上它读取 header 信息。

因此,如果您正在交谈的服务器尚未写入任何数据,您的程序将坐在那里,等待 header 实际写入。

如果您在运行此代码时在调试器中中断,我想您会发现堆栈跟踪包含 ObjectInputStream.readStreamHeader

关于java - 创建 ObjectInputStream 后无法看到打印消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18040600/

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