今天公司需要用代理上网,以前放在服务器上的程序现在在本机模拟客户端无法登陆,原来问题就是出在代理上。在这里记录下。
网络大概结构
假如模拟客户端在PC1上通过外网访问位于主机上的服务器程序,直接使用Socket是无法访问的,因为代理的限制。
上网Google+百度解决如下:
String proxyHost = "192.168.0.222 "; String proxyPort = "1080 "; System.getProperties().put("socksProxySet ", "true "); System.getProperties().put("socksProxyHost ", proxyHost); System.getProperties().put("socksProxyPort ", proxyPort); String host = "192.168.1.107 "; int port = 8421; System.out.println("connetioning: " + host + ": " + port); socket = new Socket(host, port); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream());