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 楼答案
你的服务器除了数字值,但在客户端程序中你发送“你好吗?”价值所以服务器端得到了InputMismatchException异常并退出