将多个客户端连接到服务器:ArrayIndexOutOfBoundsException:0

时间:2015-05-05 12:07:55

标签: java sockets server indexoutofboundsexception

我希望你能解决我的问题。

我有一个ServerClass和一个ClientClass,我可以连接这两个程序。但是,如果我想通过相同的Virtutal机器将多个客户端连接到我的服务器,则会收到以下错误:java.lang.ArrayIndexOutOfBoundsException: 0

我通过了我的程序命令行参数!

但我不知道为什么......以下是对我的问题很重要的部分:

public class ClientStart {
[...]

    public static void main(String[] args) {
        System.out.print("Geben Sie Ihre IP-Adresse ein: ");
        ipadress = readString();
        args[0] = ipadress;
        System.out.println("");
        if (args.length != 1) {
            System.exit(1);
        }
        connect();
        ipadress = "";
    }

    public static void connect() {
        InetSocketAddress inetSocketAddress
                = new InetSocketAddress(ipadress, 56789);
[...]

谢谢!

2 个答案:

答案 0 :(得分:1)

<title>{block:TagPage} {Tag} - {/block:TagPage}{block:SearchPage}{lang:Search results for SearchQuery} - {/block:SearchPage}{block:PostSummary}{PostSummary} - {/block:PostSummary}{Title}</title> 是一个数组,其长度在初始化期间确定(与任何其他数组一样)。

在你的情况下,可能因为你没有将任何参数传递给你的程序,它的'大小为零,因此

args

抛出args[0] = ipadress; ,因为数组的长度为零。

答案 1 :(得分:0)

main方法中的args []用于执行程序时传递的参数。你不能使用args [0]因为没有参数调用程序而且数组是空的。

只需使用您在ipadress中读取的值,不要尝试将其分配给args [0]。如果您提供更多代码,我会更有帮助。

args[0] = ipadress; // Args here is an empty array - you don't need that line