假设我使用以下代码连接到SOCKS5代理,我实例化的applet发送的连接或数据包是否会通过同一个代理?
System.getProperties().setProperty("socksProxySet", "true");
System.getProperties().setProperty("socksProxyHost", "*.*.*.*");
System.getProperties().setProperty("socksProxyPort", "*");
Applet是使用从中创建newInstance的类加载器对象启动的。
classLoader = new CustomClassLoader(/* Hashmap of byte arrays */); // Custom classloader that works using byte arrays
Applet applet = (Applet) classLoader.loadClass("class").newInstance();
applet.setStub(stub);
applet.init();
applet.start();
frame.add(applet);
答案 0 :(得分:2)
这个问题的答案似乎是是。
以下代码:
public class TestApplet extends Applet {
private String ip;
public void init() {
try {
URL ipCheck = new URL("http://checkip.amazonaws.com");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(ipCheck.openStream()));
ip = bufferedReader.readLine();
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void stop() {
}
public void paint(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.CYAN);
g.drawString("Current IP: " + ip, 10, 20);
}
}
和
public class Boot {
public static void main(String[] args) {
System.getProperties().setProperty("socksProxySet", "true");
System.getProperties().setProperty("socksProxyHost", "71.9.127.141"); //Credits to HideMyAss.com
System.getProperties().setProperty("socksProxyPort", "28045");//Credits to HideMyAss.com
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (Exception e) {
e.printStackTrace();
}
TestApplet testApplet = new TestApplet();
testApplet.init();
JFrame jFrame = new JFrame();
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jFrame.setSize(500, 500);
jFrame.setContentPane(testApplet);
jFrame.setVisible(true);
}
}).start();
}
}
输出:
答案 1 :(得分:1)
因此,如果您的示例显示您设置属性并在同一JVM上执行Applet,那么您应该没问题。