我的服务器代码如下所示:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
private ServerSocket serverSocket;
public Server(int port) throws IOException {
serverSocket = new ServerSocket(port);
}
@Override
public void run() {
try {
Socket client = serverSocket.accept();
// do stuff
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的计划是编写一个连接到服务器套接字的模拟客户端,并验证结果,但为了做到这一点,我需要知道连接到哪个端口。但是,这些信息是私密的。
我想到的所有选项都不是我认为的好习惯:
ServerSocket
以原子方式提供空闲端口),我仍然无法访问它。getServerPort()
方法或创建一个接受ServerSocket
对象的构造函数,但仅为了测试而更改接口被认为是不好的做法。