关于Bart在NAT router blocking JMS messages中遇到的问题 我试图找到客户端收到openJMS消息的端口号。在网上搜索年龄后,我只能找到有关服务器端口的信息,客户端上没有任何内容。这是用于tcp连接。
如果有人能指出我正确的方向,我将非常感激。
谢谢!
答案 0 :(得分:2)
通常,每个新连接的客户端端口号都不同。 我找不到OpenJMS客户端在与服务器通信时使用特定端口号的证据。以下是一些解释。
当客户端进程首次联系服务器进程时,它可能会使用a 众所周知的端口号,以启动通信。着名的港口 号码分配给整个互联网上的特定服务, 互联网号码分配机构IANA。着名的港口 数字在0到1023之间。
众所周知的端口仅用于建立之间的通信 客户端和服务器进程。完成后,服务器 为后续使用分配一个临时端口号。短暂的港口 数字是唯一的端口号,在动态分配时 流程开始沟通。它们在通信时被释放 完整。
TCP/IP Client (Ephemeral) Ports and Client/Server Application Port Use
相反,服务器响应客户端;他们没有发起联系 跟他们。因此,客户端不需要使用保留端口 数。事实上,这实在是轻描淡写:服务器 不应该 使用众所周知或注册的端口号将响应发回 客户端。原因是特定设备可能 运行相同协议的客户端和服务器软件 同一台机器。如果服务器在端口80上收到HTTP请求 它的机器并将回复发送回客户端机器上的端口80, 它会将回复发送到客户端计算机的HTTP 服务器 进程(如果存在)而不是发送初始化的客户端进程 请求。
要知道在何处发送回复,服务器必须知道端口号 客户正在使用。这由客户端提供为源端口 在请求中,然后由服务器用作目标端口 发送回复。客户端进程不使用已知或已注册 端口。而是为每个客户端进程分配一个临时端口 使用数量。这通常称为短暂的端口号。
关于另一个问题的类似答案:How to decide on port number between client and server communication on internet:
此外,客户端可以连接到同一端口上的许多服务器。当。。。的时候 客户端连接,他们将在那里使用随机端口。
只有服务器需要担心使用空闲端口,而且 客户需要知道这个端口是什么,否则他们将无法做到 连接到您的服务器。
其他可能的帮助: