Почему не работают мой сервер и клиент, написанные на Java? - PullRequest
0 голосов
/ 17 декабря 2009

Мой сервер продолжает получать эту ошибку, когда я запускаю клиент:

Exception in thread "main" java.io.EOFException
    at java.io.DataInputStream.readInt(Unknown Source)
    at java.io.ObjectInputStream$BlockDataInputStream.readInt(Unknown Source)
    at java.io.ObjectInputStream.readInt(Unknown Source)
    at MyServer.main(MyServer.java:10)

Вот код сервера:

import java.net.*;
import java.io.*;

public class MyServer{
    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = new ServerSocket(40);
        Socket clientSocket = serverSocket.accept();
        ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
        System.out.println(in.readInt());
        serverSocket.close();
        System.exit(0);
    }
}

А вот код клиента:

import java.io.*;
import java.net.*;

public class MyClient {
    public static void main(String[] args) throws IOException {

        Socket socket = new Socket("localhost", 40);
        ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());     
        out.writeInt(5);
        socket.close();
        System.exit(0);
    }
}

Ответы [ 2 ]

2 голосов
/ 17 декабря 2009

Попробуйте добавить

out.flush();

как раз перед

socket.close();
2 голосов
/ 17 декабря 2009

Вы должны сбросить ваш ObjectOutputStream перед закрытием Socket.

...