2

Server.java

public class Server {
    public static BufferedReader inFromClient = null;
    public static DataOutputStream outToClient = null;
    public static Socket connectionSocket = null;
    static ServerSocket welcomeSocket = null;
    static String path = null;

    public static void main(String[] args) throws IOException {
        welcomeSocket = new ServerSocket(1001);

        FileInputStream fin = null;
        FileOutputStream fout = null;

        while (true) {

            connectionSocket = welcomeSocket.accept();

            inFromClient = new BufferedReader(new InputStreamReader(
                    connectionSocket.getInputStream()));

            outToClient = new DataOutputStream(
                    connectionSocket.getOutputStream());
            path = inFromClient.readLine();

            if (path != null) {
                String fileName = new File(path).getName();

                File file = new File(path);
                File file2 = new File(fileName);

                fin = new FileInputStream(file);

                fout = new FileOutputStream(file2);

                byte[] buffer = new byte[1024];
                int bytesRead;
                while ((bytesRead = fin.read(buffer)) > 0) {
                    fout.write(buffer, 0, bytesRead);
                }

                fin.close();
                fout.close();
            }

        }
    }
}

このエラーが発生しています

Exception in thread "main" java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at java.io.BufferedReader.readLine(Unknown Source)
    at Server.main(Server.java:37)

そして、これが私がやろうとしていたことです。

Server.java を実行した後、Client.java を実行します。選択ボタンを押してみましたが、ファイルを選択せず​​、その後ファイルチューザーを閉じました。

私の理解では、この行は

  path = inFromClient.readLine();

readLine を実行しようとしたが、ソースが不明であると表示される理由が見つからなかった場合、どうすれば修正できますか?

私はソケットClient.javaにしようとしclose()ていますが、まったく閉じていません....

更新エラーが発生したserver.javaにtry&catchを配置してエラーを修正し、問題を修正しました!

4

1 に答える 1