2010-11-30 2 views
0

Я пытаюсь создать сервер в java, который будет поддерживать до 4 подключений одновременно. Я думал, что хранение соответствующей информации в массиве будет служить моей цели, ну, но у меня проблемы.java object streams

Вот класс, я создал:


import java.net.*; 
import java.io.*; 
public class tcpConnects{ 
private ObjectInputStream input; 
private ObjectOutputStream output; 
private int player; 
public tcpConnects(int playerNumber, Socket connect) { 
    // TODO Auto-generated method stub 
     try{ 
      System.out.println("create InputStream"); 
      input= new ObjectInputStream(connect.getInputStream()); 
      System.out.println("create OutputStream"); 
      output= new ObjectOutputStream(connect.getOutputStream()); 
      System.out.println("streams created"); 
      //sendData("Welcome!"); 
      player=playerNumber; 
     }catch (IOException ioException){ 
      ioException.printStackTrace(); 
     } 
    } 
    public ObjectInputStream getInput(){ 
     return input; 
    } 
    public void setInput(ObjectInputStream in){ 
     input=in; 
    } 
    public ObjectOutputStream getOutput(){ 
     return output; 
    } 
    public void setOutput(ObjectOutputStream out){ 
     output=out; 
    } 
    public int getPlayer(){ 
     return player; 
    } 
    public void sendData(String data){ 
     try{ 
      output.writeObject(data); 
      output.flush(); 
     }catch (IOException ioException){ 
      ioException.printStackTrace(); 
     } 
    } 
} 

во всяком случае, когда я посылаю сокет в класс, он попадает в стадии создания входного потока, а затем поток фактически никогда не создано , Синтаксис кажется правильным, поэтому я могу только предположить, что есть некоторая форма логической ошибки, о которой я не знаю. Любая помощь в расшифровке, почему этот класс не будет создавать поток ввода или вывода, будет с большой благодарностью.

Спасибо,

ответ

7

Создайте ObjectOutputStreamперед темObjectInputStream, на обоих концах. Конструктор ObjectOutputStream записывает заголовок в поток, который конструктор ObjectInputStream читает, поэтому, если вы создаете ObjectInputStreams, сначала вы получите тупик.

+0

Спасибо, EJP, вы очень помогли! Создание выходного потока на обоих концах отлично работало! – Rolan 2010-11-30 12:37:16

Смежные вопросы