Java套接字:客户端获取IP地址和端口以连接到服务器

时间:2016-05-17 09:02:18

标签: java sockets networking tcp port

我被困在大学课程的家庭作业中。 我们应该使用客户端和服务器编写一个Rock-Paper-Scissors游戏,选择TCP或UDP。 客户端部分的分配是: “在开始时获取服务器的IP地址和端口,然后使用此信息连接到服务器。” 和服务器: “端口需要在开始时使用命令行输入设置为介于10000和20000之间的数字。” 现在这让我感到疑惑。如果客户端没有连接到服务器,客户端应该如何获得服务器的IP地址和端口? 通常客户端和服务器创建一个套接字,服务器监听客户端是否要连接然后接受请求,建立连接,而不是客户端,就像在分配中请求的那样。如果没有连接,是不是不可能知道服务器?

如果服务器运行,我的版本正常工作:

// Setting the port via console, making an output: "please enter valid port" and returns the entered port number
    ServerTest.port = ServerTest.getPort();
...
ServerSocket testSocket = new ServerSocket(ServerTest.port);

和客户:

private static String host = "localhost";
private static Integer port = 1337;
...
Socket clientSocket = new Socket(ClientTest.host, ClientTest.port);

如果我在启动服务器时将端口设置为1337。

然后我尝试了类似

的东西
//Client
port = ServerTest.getServerPort();
...
Socket clientSocket = new Socket(ClientTest.host, ClientTest.port);

并在服务器类中:

public static Integer getServerPort(){
    return port;
}

但是,抛出“连接被拒绝”的例外,即使我首先是服务器,设置端口而不是启动客户端。 有谁知道如何解决这个问题?

0 个答案:

没有答案