通过PrintWriter从服务器向客户端发送整数时,无法进行解析

时间:2017-02-04 08:12:05

标签: java server client

我正在编写一个小型服务器 - 客户端程序,它将一个写入文件的客户端的文本发送到具有相同文件名的其他客户端,并出现以下错误 enter image description here

但我只是发送一个整数而没有其他字符...

以下是代码:

服务器

String[] splitter = scanText.split("\n");
String length = splitter.length + "";

//sending scanText to clients
for (PrintWriter pw2 : userMap.get(filename) ) {
     if(!pw2.equals(pw))
     {
        pw2.println(length + "\n" + scanText); 
     }
}

客户端

class" UpdateInBackground"是一个在Client-class

中的类
class UpdateInBackground extends Thread {

    @Override
    public void run() {
        int lines; //to know how much lines are send from the server
        String scanText;
        while (!this.isInterrupted()) {
            scanText = "";
            lines = Integer.parseInt(sc.nextLine()); //here I get the error
            while (lines-- > 0) {
                scanText += sc.nextLine() + "\n";
            }
            output.setText(scanText);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

@asparagus,请在sc.nextLine()中定义sc,考虑到这是Scanner类的一个对象,我需要知道输入。这个问题必须可以用变量的定义和输入来自我解释。

在类UpdateInBackground中, lines = Integer.parseInt(sc.nextLine()); //这里nextLine()适用于任何String,请参考documentation

NumberFormatException的原因:您正在将值转换为int,而不知道输入的内容。

尝试使用异常处理,以了解可能出现的错误类型,以避免程序被攻击。