Java 永远在ObjectInputStream构造函数中等待
我正在创建一个客户端服务器,如下所示: 服务器: 侦听器线程守护程序(始终侦听传入连接) 与连接的客户端发送/接收数据的服务对象 客户: 可以有许多客户端实例 然而,在连接建立后的任何一侧,创建ObjectOutputStream&ObjectInputStream类型的构造函数都要花费很长时间。谷歌搜索揭示了这一点。我遵循以下步骤: 1.首先创建ObjectOutputStream 2.冲洗 3.第二次创建ObjectInputStream 但这对我不起作用。想知道为什么 服务器: 侦听器线程/守护进程:Java 永远在ObjectInputStream构造函数中等待,java,sockets,objectinputstream,objectoutputstream,Java,Sockets,Objectinputstream,Objectoutputstream,我正在创建一个客户端服务器,如下所示: 服务器: 侦听器线程守护程序(始终侦听传入连接) 与连接的客户端发送/接收数据的服务对象 客户: 可以有许多客户端实例 然而,在连接建立后的任何一侧,创建ObjectOutputStream&ObjectInputStream类型的构造函数都要花费很长时间。谷歌搜索揭示了这一点。我遵循以下步骤: 1.首先创建ObjectOutputStream 2.冲洗 3.第二次创建ObjectInputStream 但这对我不起作用。想知道为什么 服务器: 侦听器线程
Socket connSocket;
try {
ServiceListener.serverSocket = new ServerSocket(listenPort);
System.out.println("Listening on port: " + listenPort);
while (true) {
connSocket = serverSocket.accept();
nodeList.add(connSocket);
System.out.println("Accepted connections ( " + connSocket + "):" + getConnectedNodeCount());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
服务器线程(接受连接后)
服务器控制台输出:
starting Listener 11...
Service Function started !!
Listening on port: 2244
Accepted connections ( Socket[addr=/127.0.0.1,port=62994,localport=2244]):1
客户端控制台:
Creating Node socket...
我会将do{}while(false)更改为do{}while(true),否则,让while循环只运行一次并退出是没有意义的,也就是说,do while(false)循环的行为就像它不在那里一样 编辑问题以反映有两条平行线1。侦听器(使用while(true)2.Server线程(读取/写入)在接受的连接socketsYes上,我可以也应该这样做。但是,这仍然不能解决我在创建ObjectInputStream对象时面临的问题。如果您调试它到底挂在哪里,挂在哪一行,最好检查客户端上的服务器ip和端口是否使用线程安全列表实现?
starting Listener 11...
Service Function started !!
Listening on port: 2244
Accepted connections ( Socket[addr=/127.0.0.1,port=62994,localport=2244]):1
Creating Node socket...