Java Server和Client - 无法构造InetAddress

问题描述 投票:0回答:2

我正在尝试用java编写服务器和客户端程序。我之前没有这样做过,所以我想我会从下面链接提供的示例开始。

服务器代码:http://java.sun.com/developer/onlineTraining/Programming/BasicJava2/Code/SocketServer.java

客户代码:http://java.sun.com/developer/onlineTraining/Programming/BasicJava2/Code/SocketClient.java

我在命名方面做了一些改动,但基本功能应该是相同的。服务器应用程序运行正常,但客户端应用程序正在抛出UnknownHostException。我认为问题可能与两个应用程序中使用的IP地址无效有关。我在Mac上运行它,我并不认为自己是IP地址的专家,但我认为编写实际打印出IP地址的代码可能是一个好主意,如下所示,以防万一这一切都很有帮助。

java.net.InetAddress address = java.net.InetAddress.getLocalHost();
System.out.println("IP Address  :"+address.getHostAddress());

但是,这段代码返回一些数字,如463.827.201.789(不是真的这只是为了演示目的),这绝对不能作为我正在使用的Socket构造函数的参数。

无论如何,我不知道问题是什么,我需要帮助。

java sockets client-server ip-address
2个回答
0
投票

打印InetAddress对象getHostAddress()方法打印地址的文本表示(在API中指定,检查http://download.oracle.com/javase/6/docs/api/java/net/InetAddress.html#getHostAddress())。这应该是您的计算机的IP地址? (或者可能是127.0.0.1,始终指向本地计算机的地址)。

Socket类(http://download.oracle.com/javase/6/docs/api/java/net/Socket.html)在构造函数中获取一个InetAddress +端口号,因此您应该能够将它传递给InetAddress和SocketServer侦听的第一个参数和端口号。 (每个服务器套接字在端口号上打开一个监听器,您基本上可以自己选择,检查http://download.oracle.com/javase/6/docs/api/java/net/ServerSocket.html)。


0
投票

在线

 socket = new Socket("kq6py", 4444);

你提供了什么而不是“kq6py”?假设您的服务器程序与客户端在同一台计算机上运行 - 您应该尝试“localhost”或“127.0.0.1”

© www.soinside.com 2019 - 2024. All rights reserved.