尝试连接到套接字时出现NumberFormatException(Throwable)错误

时间:2014-03-05 03:04:23

标签: java eclipse sockets arraylist

我编写了一个需要连接多个服务器套接字的程序。每次连接到服务器时,我都尝试将服务器的InetAddress和localPort保存为ArrayList(connectedServers)中的ArrayList。所以connectedServers是ArrayLists的ArrayList。在建立与服务器的新连接之前,我尝试通过connectedServers检查来检查相同的服务器是否已与此客户端连接。

在eclipse中调试时,调试器在以下代码中标记为“ERROR”的行停止。在eclipse中,将打开一个新标签,标题为NumberFormatException(Throwable).<init>(String) line: 197,显示消息Source not found

如果我将标记的代码行放在if块之外,则连接成功。但我需要它在if块内部工作。可能是什么问题?代码如下。

public static ArrayList<ArrayList<Object>> connectedServers = new ArrayList<ArrayList<Object>>();

public static void main (String args[]) throws IOException {
    listeningPort = 1111;
    String host = takeInput("Host");
    int port = takeInputInt("Port");

    Socket a = connectToServer(host, port);

    if (a != null) { 
        //....
            }
    //....
}

public static String takeInput(String inputName) throws IOException {
    System.out.print(inputName+": ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String input = br.readLine();
    return input;
}

public static int takeInputInt(String inputName) throws IOException {
    System.out.print(inputName+": ");
    Scanner inputInt = new Scanner(System.in);
    int input = inputInt.nextInt();
    return input;
}

public static Socket connectToServer(String host, int port) throws IOException {
    ArrayList<Object> element = new ArrayList<>();
    element.add(host);
    element.add(port);

    //println(connectedServers);
    //println(element);
    //println(connectedServers);


    if (connectedServers.contains(element) != true) {
        //println(host + "   " + port);
        Socket fellowServer = new Socket(host, port);//<-------ERROR!!
        connectedServers.add(element);
        element.remove(host);
        element.remove(0);
        return fellowServer;
    }
    else{
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

输入

时可能出现问题
Scanner inputInt = new Scanner(System.in);
int input = inputInt.nextInt();