簡體   English   中英

Java 代理背后的套接字編程

[英]Java Socket Programming behind proxy

我寫了一個 TCP IP 套接字程序,它工作正常。 但是如果我的服務器或客戶端在代理后面,我的套接字程序就不起作用。 那么如何克服這類問題。

謝謝巴皮

那么有兩個問題需要考慮:

  1. 在代理后面;
  2. 在防火牆后面。

防火牆往往更容易:您只需使用端口 80 (HTTP) 或 443 (HTTPS)。 代理更難,因為直接網絡通信往往被普通 PC 禁用。

這就是為什么你經常發現人們使用 HTTP 和/或 SSL 作為他們的傳輸媒介,因為他們繞過了這些類型的安全問題。 您可以推送內容(使用長期連接,也就是 Comet 技術),因此通常沒有真正的技術理由不這樣做。

但是,如果不了解您的應用程序和任何相關要求的更多信息,就很難說這是否是一個好主意。

代理通常在應用程序級別工作,而不是在傳輸級別。 以下是有關 Java 和代理的一些信息

根據代理的不同,您可能無能為力。 如果代理旨在阻止它不直接處理的所有流量,那么您必須通過代理 go 以某種方式使用它,或者您必須找到一種方法潛入代理。

例如,許多應用程序都構建在 HTTP 之上,正是因為它通常允許通過防火牆並且通常對代理友好。 因此,當您知道將在可能存在代理的環境中安裝應用程序時,這是一種非常安全的通信方式。

在您的情況下,這取決於您的應用程序使用的端口,這些端口是否通常由任何現有協議的代理處理,取決於您是否使用標准(眾所周知)協議或發明了您的自己的,等等。

這個代理是透明代理嗎? (也就是說,web 瀏覽器是否必須配置才能看到它?)代理類型決定了您的應用程序需要如何使用它。 代理是否由您的組織控制?

你說你用的是5018端口,作為一個實驗,你可以試試用80端口嗎? 僅僅因為您使用端口 80 並不意味着您必須使用 HTTP。 這值得一試,看看是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM