首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JVM上启用代理时,是否可以获取原始主机和端口?

在JVM上启用代理时,是否可以获取原始主机和端口?
EN

Stack Overflow用户
提问于 2013-03-25 18:35:38
回答 1查看 98关注 0票数 1

我感兴趣的是记录Java程序的TCP通信,以便稍后重放-类似于Betamax等VCR框架所做的事情。挑战是创建一个代理来记录TCP流量,而不改变原始的Java程序。

我最初的想法是:假设我有一个任意的Java程序,它打开到不同服务(例如数据库)的TCP连接,并且我设置了JVM的socksProxyHost属性来连接到localhost,在那里我使用以下代码运行程序:

代码语言:javascript
复制
ServerSocket serverSocket = new ServerSocket(1080);
Socket socket             = serverSocket.accept();

有没有什么方法可以读取Java程序试图访问的原始主机和端口设置(在应用socksProxyHostsocksProxyPort选项之前)?如果是这样的话,我可以用原来的主机和端口打开一个新的套接字,然后转发/记录数据。

或者,是否有其他方法可以记录/重放(blackbox) Java程序(即,假设源代码不可用)和该程序使用的服务之间的TCP通信?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-25 18:50:50

有没有办法读取Java程序试图访问的原始主机和端口设置(在应用socksProxyHost和socksProxyPort选项之前)?

SOCKs客户机试图到达的主机和端口是client->server消息的一部分。所有这些都在Wikipedia page中进行了解释。

实际上,有一些现有的Java库支持SOCKs协议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15612817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档