Java 客户端和服务器端报错

importjava.net.*;importjava.io.*;publicclassGreetingServerextendsThread{privateServer... import java.net.*;import java.io.*;public class GreetingServer extends Thread{ private ServerSocket serverSocket; public GreetingServer(int port) throws IOException { serverSocket = new ServerSocket(port); serverSocket.setSoTimeout(10000); } public void run() { while(true) { try { System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "..."); Socket server = serverSocket.accept(); System.out.println("Just connected to " + server.getRemoteSocketAddress()); DataInputStream in = new DataInputStream(server.getInputStream()); System.out.println(in.readUTF()); DataOutputStream out = new DataOutputStream(server.getOutputStream()); out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!"); server.close(); }catch(SocketTimeoutException s) { System.out.println("Socket timed out!"); break; }catch(IOException e) { e.printStackTrace(); break; } } } public static void main(String [] args) { args = new String[10]; int port = Integer.parseInt(args[0]); try { Thread t = new GreetingServer(port); t.start(); }catch(IOException e) { e.printStackTrace(); } }} 展开
 我来答
匿名用户
2016-06-02
展开全部

程序在这句把args初始化为一个有10个元素的String数组,然后在下一句,马上把args的第一个元素转换为整型,这时args[0]肯定是null,所以报了转换错误。

客户端也是同样的问题

追问
那怎么该呢.....
追答

有两个办法。

第一个就是在这两句间加一句赋值:

例如:

args = new String[10];
args = "8081";
int port = Integer.parseInt(args[0]);

第二个是把args = new String[10];这句删了,让参数从其调用者传过来。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式