Java Создание новых блоков ObjectInputStream

Я пытаюсь создать новый ObjectInputStream, используя InputStream, полученный из Socket. Вот мой код:

Это конструктор моего класса MessageGetterSender. Программа не попадает в контрольную точку 4.

public MessageGetterSender(Socket socket) {

    System.out.println("MessageGetterSender: Checkpoint 1");

    this.socket = socket;

    // Get input and output streams
    try {
        System.out.println("MessageGetterSender: Checkpoint 2");

        InputStream is = socket.getInputStream();

        System.out.println("MessageGetterSender: Checkpoint 3");

        this.in = new ObjectInputStream(is);

        System.out.println("MessageGetterSender: Checkpoint 4");

    } catch (IOException ioe) {
        System.out.println("Could not get ObjectInputStream on socket: " + socket.getLocalPort());
    }

    try {
        this.out = new ObjectOutputStream(socket.getOutputStream());
    } catch (IOException ioe) {
        System.out.println("Could not get ObjectOutputStream on socket: " + socket.getLocalPort());
    }

    System.out.println("MessageGetterSender: Checkpoint 5");
}

Я создаю экземпляр нового объекта MessageGetterSender из класса, в котором я подключаюсь к серверу для получения сокета. Вот соответствующий код. Это конструктор для InstantMessageClass, класса, который создает экземпляр объекта MessageGetterSender:

public InstantMessageClient(String username) {

try {
    socket = new Socket("localhost", 5555);
} catch (IOException ioe) {
    System.out.println("Error: Could not connect to socket on port: " + serverPort);
}

messageGetterSender = new MessageGetterSender(socket);

...

Поскольку код не выполняется для контрольной точки 4, но все же достигает контрольной точки 3, I ' Я почти уверен, что в этом виноват экземпляр ObjectInputStream. Но я не могу понять почему. Есть идеи? Спасибо за помощь.

21
задан ericso 14 April 2011 в 03:05
поделиться