gpt4 book ai didi

java - 客户端和服务器是否需要使用相同的端口连接?

转载 作者:行者123 更新时间:2023-11-30 06:53:21 26 4
gpt4 key购买 nike

我有一个使用 java 的服务器-客户端程序,我试图创建一个带有端口的 ServerSocket 和带有不同端口的客户端 Socket,但它们无法相互连接。客户端抛出 ConnectException。当我将客户端上的套接字更改为与我用于 ServerSocket 的套接字相同时,它们起作用了。

据我从这个帖子的回答中了解到 Java Networking: Explain InputStream and OutputStream in Socket如果一台机器创建一个带有端口的套接字,那么该套接字将绑定(bind)到该机器,那么为什么客户端和服务器需要使用相同的端口来相互连接?

此外,两个应用程序不能在一台机器上使用相同的端口,那么当两个具有相同端口的不同服务器和一台机器需要通过 2 个不同的应用程序连接到它们时会发生什么?

最佳答案

您需要对 TCP 通信有一些基本的了解。只是谷歌 TCP 教程。

简而言之;服务器将监听特定端口。当服务器正在监听一个端口时,它会绑定(bind)到该端口。一台机器上只有一个服务器(或进程)可以监听某个端口。

客户端将连接到一台机器并指定要通信的端口。如果服务器正在监听客户端请求的端口,则会发生通信。否则连接无法继续。

所以服务端绑定(bind)(或监听)的端口必须和客户端指定的端口相同。

关于java - 客户端和服务器是否需要使用相同的端口连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37694551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com