繁体   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