java - 如何修复错误 java.lang.ArrayIndexOutOfBoundsException?
问题描述
我正在学习使用 Glassfish Server 为客户端和服务器系统编写 Java 网络编程代码。
我已经通过 GS 创建了一个 localhost 服务器。以下是我从 github 复制的代码。
import java.net.*;
import java.io.*;
public class GreetingClient
{
public static void main(String [] args)
{
String serverName = args[0];
int port = Integer.parseInt(args[1]);
try
{
System.out.println("Connecting to " + serverName +
" on port " + port);
Socket client = new Socket(serverName, port);
System.out.println("Just connected to "
+ client.getRemoteSocketAddress());
OutputStream outToServer = client.getOutputStream();
DataOutputStream out = new DataOutputStream(outToServer);
out.writeUTF("Hello from "
+ client.getLocalSocketAddress());
InputStream inFromServer = client.getInputStream();
DataInputStream in =
new DataInputStream(inFromServer);
System.out.println("Server says " + in.readUTF());
client.close();
}catch(IOException e)
{
e.printStackTrace();
}
}
}
每次我运行代码时,它都会显示错误
线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:索引 0 超出长度 0 的范围
请问我该如何解决?这真是令人费解……
解决方案
您的应用程序需要两个用于服务器名和端口的命令行参数。
String serverName = args[0];
int port = Integer.parseInt(args[1]);
例如,如果 GlassFish 服务器在您的本地主机上的 8080 端口上运行,您将使用以下参数运行您的客户端应用程序
java GreetingClient localhost 8080
推荐阅读
- text-extraction - 如何获取字符/单词/行/块坐标
- json - 使用映射对“allKeys”进行排序
- linux - 无法在 Linux 上设置内核动态调试?
- gridview - Yii2-如何使用kartik日期时间选择器搜索gridview记录
- javascript - 在操作员中调用 next 时,主题的顺序错误
- json - 无法在带有 Firebase Web 的谷歌地图中将 geojson 值作为字符串导入
- android - android NoSuchMethodError: android.support.v7.widget.RecyclerView.onNestedScrollAccepted
- python - 使用 cython 加速 itertools 组合
- c++ - 像普通指针一样索引和写入唯一指针
- python - 合并元组的字典