有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

eclipse Java服务器和客户端

我正在尝试处理这个服务器和客户端程序。它应该执行以下对话框:Dialoge

但遗憾的是没有工作,我不知道为什么。也许你能看到失败?我开始创建一个服务器和一个客户端类,但我不知道如何实际测试它

import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Scanner;

public class ServerSource {

    static ArrayList<Integer> numbers = new ArrayList<Integer>();

    public static void main(String[] args) {

        ServerSocket serverSocket = null;
        Socket socket = null;

        try {
            serverSocket = new ServerSocket(5555);
            socket = serverSocket.accept();

            Scanner kyb = new Scanner(socket.getInputStream());
            PrintWriter out = new PrintWriter(socket.getOutputStream());

            out.println("How many numbers?");
            out.flush();

            int numb = kyb.nextInt();
            out.println("Input " + numb + " lines:");
            out.flush();

            while (numb > 0) {
                numbers.add(kyb.nextInt());
                numb--;
            }

            out.println("Sum: " + sum());
            out.flush();
            out.println("Avg: " + avg());
            out.flush();

        } catch (Exception e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                socket.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            try {
                serverSocket.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }

    }

    public static int sum() {
        int sum = 0;
        for (int i = 0; i <= numbers.size(); i++) {
            sum = sum + numbers.get(i);
        }
        return sum;
    }

    public static double avg() {
        return sum() / numbers.size();
    }

}





import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class ClientSource {

    public static void main(String[] args) {

        Socket socket = null;

        try {
            socket = new Socket("10.210.17.189", 5555);
            Scanner in = new Scanner(System.in);
            PrintWriter out = new PrintWriter(socket.getOutputStream());

            out.println("Hello?");
            out.flush();

            String strIn = in.nextLine();
            out.println(strIn);

        } catch (Exception e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                socket.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }

    }
}

PS:对不起,我的英语很差


共 (1) 个答案

  1. # 1 楼答案

    你的服务器除了数字值,但在客户端程序中你发送“你好吗?”价值所以服务器端得到了InputMismatchException异常并退出