我正在尝试使用套接字流进行多次数据传输。
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,但结果相同。
如何只使用一个流套接字进行多次数据传输?
答案 0 :(得分:0)
如果您尝试通过网络发送此数据,这可能有所帮助:
http://systembash.com/content/a-simple-java-udp-server-and-udp-client/
然后,当涉及到检测数据时,您可以始终执行以下操作:
if(name_of_your_string.compare("what_you_are_looking_for")){
//what you want to do with "what_you_are_looking_for"
}