複数のデータ転送にソケットストリームを使用しようとしています。テキスト ソケット上の複数の出力
List<>
- ...
は、私が期待するデータの種類を、続いてクライアントに伝えるString
を送信するためのひとつのソケットを使用することができます期待されるデータ(この場合はList<>
)によって?ここで
は私が考えていたものです。
//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();
}
私はこれをしようとすると、指定したエラーが「java.net.SocketException: Socket is closed
」
である私も、OutputStreamをクローズしようとしたが、それは同じ結果を与えます。
複数のデータ転送に1つのストリームソケットを使用するにはどうすればよいですか?
なぜclient.shutdownOutput(); before getOutputStream()? – kosa