2012-12-17 291 views
4

關於Bart在NAT router blocking JMS messages 中遇到的問題我試圖找到客戶端收到openJMS消息的端口號。在Web上搜索年齡後,我只能找到有關服務器端口的信息,而客戶端上沒有任何信息。這是爲了TCP連接。OpenJMS - 客戶端端口號

如果任何人都可以指出我正確的方向,我將非常感激。

謝謝!

回答

2

通常,每個新連接的客戶端端口號都不相同。 我無法找到OpenJMS客戶端在與服務器通信時使用特定端口號的證據。以下是一些解釋。

  1. Port Numbers

    當客戶端進程第一觸點的服務器過程中,它可以使用 公知端口號以啓動通信。衆所周知的端口 號碼被分配給互聯網號碼分配機構IANA的 整個特定服務。公知端口號 到1023

    是範圍爲0衆所周知的端口僅用於將 客戶端和服務器進程之間建立通信。完成後,服務器 會分配一個臨時端口號供以後使用。臨時端口 號碼是唯一的端口號,當 進程開始進行通信時,這些端口號是動態分配的。當溝通完成時,他們被釋放。

  2. TCP/IP Client (Ephemeral) Ports and Client/Server Application Port Use

    相比之下,服務器響應客戶端;他們不會與他們聯繫 。因此,客戶端不需要使用保留端口號碼 。實際上,這確實是一種輕描淡寫:服務器不應該 使用一個衆所周知的或註冊的端口號將響應發送回 客戶端。原因在於特定設備 可能在相同的機器上運行同一協議的客戶端和服務器軟件,而這些軟件在 上運行。如果服務器接收到上 它的機器的端口80的HTTP請求併發送回復回端口80在客戶機上, 將它發送所述回覆到客戶機的HTTP 服務器 處理(如果存在)而不是發送初始 請求的客戶端進程。

    要知道在哪裏發送答覆,服務器必須知道客戶端正在使用的端口號 。這是由客戶端提供的請求中的源端口 ,然後由服務器用作目標端口,以 發送回覆。客戶端進程不使用已知或已註冊的端口號 。相反,每個客戶端進程都被分配一個臨時端口 供其使用。這通常稱爲臨時端口號。另一個問題

  3. 類似的答案:How to decide on port number between client and server communication on internet

    此外,客戶端可以連接到多個服務器在同一端口上。當 客戶端連接時,他們將在那裏使用隨機端口。

    只有服務器需要擔心使用空閒端口,而客戶端需要知道這個端口是什麼,否則他們將無法連接到您的服務器。

其他可能的幫助: