【发布时间】:2021-12-23 21:20:28
【问题描述】:
@Test
public void givenGreetingClient_whenServerRespondsWhenStarted_thenCorrect() {
GreetClient client = new GreetClient();
client.startConnection("127.0.0.1", 9000);
String response = client.sendMessage("hello server");
assertEquals("hello client", response);
}
我在关注baeldung上的sockets tutorial,无法理解作者是如何确定端口号9000来连接服务器的。 127.0.0.1 代表 localhost IP 地址,所以我假设它与 IntelliJ 运行时有关,但是如何知道 IntelliJ 运行的端口?我尝试了其他端口号,没有一个通过测试。
【问题讨论】:
-
因为在另一个 sn-p 中,服务器恰好在该端口上启动。
server.start(6666);。并且 6666 并不特殊,可以是 1234,只要它在所有地方都一致更改并且尚未被其他应用程序使用。 -
好吧,他不得不选择一些数字,然后决定选择 6666。实际上并没有更多的东西。 - “那么如何知道 IntelliJ 运行的端口” server.start(6666);
-
@OHGODSPIDERS 如果那个端口被占用了怎么办?我可以随机分配任何大于 1024 的数字吗?
-
是的,你可以。但是你需要小心一点,因为许多 > 1024 的端口都有指定的含义;见en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
标签: java sockets networking ip