如何在没有SOCKS代理的情况下使用Java代理长寿命TCP/TLS连接?

如何在没有SOCKS代理的情况下使用Java代理长寿命TCP/TLS连接?,java,ssl,tcp,network-programming,Java,Ssl,Tcp,Network Programming,我有一个大型Java应用程序,它使用使用TLS加密的长寿命TCP连接来发送和接收二进制数据。这些连接是使用创建的,这提供了一个可使用的基础。应用程序启动到外部资源的连接,这些连接用作应用程序和资源之间的双向通信通道 我希望在没有直接连接到internet的企业环境中运行此应用程序。理想情况下,我会将应用程序指向运行在防火墙内部的服务器,然后该服务器将代理TCP连接到外部世界 java-DsocksProxyHost=socks.example.com-DsocksProxyPort=443… 然

我有一个大型Java应用程序,它使用使用TLS加密的长寿命TCP连接来发送和接收二进制数据。这些连接是使用创建的,这提供了一个可使用的基础。应用程序启动到外部资源的连接,这些连接用作应用程序和资源之间的双向通信通道

我希望在没有直接连接到internet的企业环境中运行此应用程序。理想情况下,我会将应用程序指向运行在防火墙内部的服务器,然后该服务器将代理TCP连接到外部世界

java-DsocksProxyHost=socks.example.com-DsocksProxyPort=443…

然而,有人告诉我,没有SOCKS代理,只有HTTP(S)代理(具体是什么类型,我还不知道)

Java为HTTPS代理提供了:

https.proxyHost
https.proxyPort
我的问题是:

  • 我认为通过
    SocketChannel
    启动的连接在设置时会忽略这些标志,对吗?如果这是不正确的,我的数据会被代理吗?如何处理长期存在的连接
  • 如果忽略
    https.proxyXXX
    设置,并且没有可用的SOCKS代理,那么我有哪些选项可以与外部世界建立长期连接