У меня есть ObjectOutputStream
и ObjectInputStream
. Я пытаюсь отправить через них ints и объекты. Теперь мне удается отправить и прочитать до определенного момента, и я не знаю, почему он останавливается.ObjectInputStream не удается прочитать
Вот точка:
Читатель:
while (true) {
start = in.readInt();
System.out.println("PART 1");
int temp1 = in.readInt();
int temp2 = in.readInt();
int temp3 = in.readInt();
System.out.println("PART12");
Chunk temp = new Chunk(temp1,temp2, temp3);
while (true) {
Он не получает part12 (не проходит первый ква ...)
Автор:
if (chunkList != null) {
for (Chunk c: chunkList) {
out.writeInt(-1);
out.writeInt(c.getLocation().getX());
out.writeInt(c.getLocation().getY());
out.writeInt(c.getLocation().getZ());
if (c.getTileList() != null) {
все проходит успешно.
Я каждые 2 мс. Промывка в отдельной теме.
Тема:
while (true)
{
while (c.sendPacket()) {
try
{
if (c.getOut() != null)
{
c.getOut().flush();
}
}
catch (IOException ioexception)
{
ioexception.printStackTrace();
}
try
{
sleep(2L);
}
catch (InterruptedException interruptedexception) { }
}
}
Почему это остановить чтение на части с 3 Интсом?
Где вы указываете? –
(a) Любая причина для ложной промывочной нити? (б) Какое фактическое исключение вы получаете? И как говорит Лайош, (c) как строятся ваши потоки? –
Сколько потоков работает? Вы экспериментируете ?! В любом случае, я подозреваю, что один из потоков работает на бесконечном цикле, учитывая, что я вижу пару while (true). Один код причины в потоке Reader не прошел мимо кода System.out, так что поток освобождает управление другим потоком на выходах консоли, то есть переключает контекст потока. И ... Я не знаю, сколько времени потрачено на поток Writer. Возможно, вам придется показать больше кода, чтобы все мы могли видеть проблему лучше. –