4

关于 Bart 在NAT 路由器中阻止 JMS 消息的问题, 我试图找到客户端接收 openJMS 消息的端口号。在网上搜索年龄后,我只能找到有关服务器端口的信息,在客户端上什么也没有。这是一个 tcp 连接。

如果有人能指出我正确的方向,我将不胜感激。

谢谢!

4

1 回答 1

2

通常,每个新连接的客户端端口号都会不同。我找不到任何证据表明 OpenJMS 客户端在与服务器通信时使用特定的端口号。这里有一些解释。

  1. 端口号

    当客户端进程第一次联系服务器进程时,它可能会使用一个众所周知的端口号来发起通信。众所周知的端口号由互联网编号分配机构 IANA 分配给整个互联网的特定服务。众所周知的端口号在 0 到 1023 的范围内。

    众所周知的端口仅用于在客户端和服务器进程之间建立通信。完成此操作后,服务器会分配一个临时端口号以供后续使用。临时端口号是在进程开始通信时动态分配的唯一端口号。它们在通信完成时被释放。

  2. TCP/IP 客户端(临时)端口和客户端/服务器应用程序端口使用

    相反,服务器响应客户端;他们不主动与他们联系。因此,客户端不需要使用保留的端口号。事实上,这确实是一种轻描淡写的说法:服务器不应该 使用众所周知的或注册的端口号将响应发送回客户端。原因是特定设备有可能在同一台机器上运行相同协议的客户端和服务器软件。如果服务器在其机器的端口 80 上接收到 HTTP 请求并将回复发送回客户端机器上的端口 80,则它将回复发送到客户端机器的 HTTP服务器 进程(如果存在)而不是发送的客户端进程最初的请求。

    要知道将回复发送到哪里,服务器必须知道客户端正在使用的端口号。这由客户端作为请求中的源端口提供,然后由服务器用作目标端口来发送回复。客户端进程不使用众所周知的或注册的端口。相反,每个客户端进程都分配有一个临时端口号供其使用。这通常称为临时端口号。

  3. 另一个问题的类似答案:如何决定互联网上客户端和服务器通信之间的端口号

    此外,客户端可以连接到同一端口上的许多服务器。当客户端连接时,他们将在那里使用一个随机端口。

    只有服务器需要担心使用空闲端口,客户端需要知道这个端口是什么,否则他们将无法连接到您的服务器。

其他可能的帮助:

于 2012-12-27T02:35:50.663 回答