Java 插座上的多个输出
我正在尝试使用套接字流进行多个数据传输Java 插座上的多个输出,java,sockets,arraylist,Java,Sockets,Arraylist,我正在尝试使用套接字流进行多个数据传输 用于发送列表 用于发送文本 我是否可以只使用一个套接字来发送一个字符串,该字符串告诉客户端所需的数据类型,然后是所需的数据(在本例中是列表) 以下是我的想法: //declarations //outputs and inputs private ObjectInputStream input; private ObjectOutputStream output; private OutputStream checkStatu
- 用于发送
列表
- 用于发送文本
字符串
,该字符串告诉客户端所需的数据类型,然后是所需的数据(在本例中是列表
)
以下是我的想法:
//declarations
//outputs and inputs
private ObjectInputStream input;
private ObjectOutputStream output;
private OutputStream checkStatus;
private PrintWriter out;
...
private void forwardMessage(List<User> clients) throws IOException {
checkStatus = client.getOutputStream();
out = new PrintWriter(new OutputStreamWriter(checkStatus), true);
out.println("Command Option 1");
client.shutdownOutput();
output = new ObjectOutputStream (client.getOutputStream());
for (int i = 0; i < clients.size(); i++) {
output.flush();
output.writeObject(clients.get(i));
output.flush();
output.reset();
}
output.writeObject(null);
client.shutdownOutput();
}
//声明
//产出和投入
私有对象输入流输入;
私有对象输出流输出;
私有输出流检查状态;
私人打印输出;
...
private void forwardMessage(列表客户端)引发IOException{
checkStatus=client.getOutputStream();
out=新的PrintWriter(新的OutputStreamWriter(checkStatus)),true;
out.println(“命令选项1”);
client.shutdownOutput();
output=newObjectOutputStream(client.getOutputStream());
对于(inti=0;i
尝试此操作时给出的错误是“java.net.SocketException:Socket已关闭”
”
我还试图关闭OutputStream,但结果相同
如何仅使用一个流套接字进行多个数据传输?如果您试图通过网络发送此数据,这可能会有所帮助: 然后,在检测数据时,您始终可以执行以下操作:
if(你的字符串的名称比较(“你在找什么”)){
//你想用“你在找什么”做什么
}
为什么选择client.shutdownOutput();在getOutputStream()之前?