Java 根据套接字创建ObjectInputStream
我正在尝试根据套接字创建ObjectInputStream,并将该流添加到列表中。 客户端在我的程序的主类中连接,套接字在线程中的另一个方法中发送。然后使用套接字创建流。 问题是永远不会创建流。我不明白为什么 下面是我的代码: 在我的帖子中:Java 根据套接字创建ObjectInputStream,java,sockets,Java,Sockets,我正在尝试根据套接字创建ObjectInputStream,并将该流添加到列表中。 客户端在我的程序的主类中连接,套接字在线程中的另一个方法中发送。然后使用套接字创建流。 问题是永远不会创建流。我不明白为什么 下面是我的代码: 在我的帖子中: public void addClient(Socket socket){ try{ streamList.add(new ObjectInputStream(socket.getInputStream())); }catc
public void addClient(Socket socket){
try{
streamList.add(new ObjectInputStream(socket.getInputStream()));
}catch(IOException e){
e.printStackTrace();
}
}
在我的主课上:
ServerSocket serverSocket = new ServerSocket(PORT);
Socket socket;
ClientThread clientThread = new ClientThread();
//start the thread
try{
socket = serverSocket.accept();
clientThread.addClient(socket);
}
catch(IOException e){
e.printStackTrace();
}
提前感谢。对等方需要在连接时立即创建其
ObjectOutputStream
。否则,newobjectinputstream
将阻塞,直到他这样做
如果您可以将ObjectInputStream
的创建推迟到处理接受套接字的线程的run()
方法,则会更好。您不应该在accept循环中执行任何I/O,只应该执行accept本身。否则,您可以阻止后续客户端