gpt4 book ai didi

java对象流

转载 作者:行者123 更新时间:2023-12-01 07:41:36 27 4
gpt4 key购买 nike

我正在尝试用 java 创建一个服务器,它将同时维护最多 4 个连接。我认为将相关信息保存在数组中可以满足我的目的,但是我遇到了一些麻烦。

这是我创建的类:


import java.net.*;
import java.io.*;
public class tcpConnects{
private ObjectInputStream input;
private ObjectOutputStream output;
private int player;
public tcpConnects(int playerNumber, Socket connect) {
// TODO Auto-generated method stub
try{
System.out.println("create InputStream");
input= new ObjectInputStream(connect.getInputStream());
System.out.println("create OutputStream");
output= new ObjectOutputStream(connect.getOutputStream());
System.out.println("streams created");
//sendData("Welcome!");
player=playerNumber;
}catch (IOException ioException){
ioException.printStackTrace();
}
}
public ObjectInputStream getInput(){
return input;
}
public void setInput(ObjectInputStream in){
input=in;
}
public ObjectOutputStream getOutput(){
return output;
}
public void setOutput(ObjectOutputStream out){
output=out;
}
public int getPlayer(){
return player;
}
public void sendData(String data){
try{
output.writeObject(data);
output.flush();
}catch (IOException ioException){
ioException.printStackTrace();
}
}
}
无论如何,当我将套接字发送到类中时,它会进入创建输入流的阶段,但实际上从未创建流。语法似乎是正确的,所以我只能假设存在某种我不知道的逻辑错误。任何有助于解释为什么此类不会创建输入或输出流的帮助都将不胜感激。

谢谢

最佳答案

ObjectInputStream之前在两端创建ObjectOutputStreamObjectOutputStream 的构造函数将 header 写入到 ObjectInputStream 的构造函数读取的流中,因此,如果您先创建 ObjectInputStreams,则会出现死锁。

关于java对象流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4310516/

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