Простите за псевдокод - у меня отключены беспроводные сети, и я не могу скопировать код со своего автономного компьютера на StackExchange.
У меня есть два java-приложения, подключенных через java.net. *Розетки.Я пытаюсь передать объекты «Сообщение» от одного к другому с помощью входных / выходных потоков объекта.
Вот что я делаю:
Class Message implements Serializable
{
String text
int data
public Message(String txt, int dat)
{
this.text = txt;
this.data = dat;
}
string toString()
{
return text + " " + data;
}
}
Сервер :
На сервере есть очередь с именем Исходящие
for(int i = 0; i < 1000; i++)
{
Message adding = new Message("Hello!",i);
Outbox.add(temp)
Message temp = Outbox.poll();
out.writeObject(temp);
system.out.println(temp)
}
Клиент :
for(int i = 0; i < 1000; i++)
{
Message temp;
temp = in.readObject()
system.out.println(temp)
}
Теперь я надеюсь, что я ожидаю, что консоликаждая программа выглядит одинаково.Вместо этого вот что я получаю.
Сервер
Hello 0
Hello 1
Hello 2
Hello 3...
Клиент
Hello 0
Hello 0
Hello 0
Hello 0...
Так чтопохоже, что объекты сообщений читаются, но не удаляются из потока.
Как я могу прочистить мои потоки и синхронизировать их, как и ожидалось?