如何將SOCKS支持添加到我的應用程序中?我在哪裏可以得到庫?java中的襪子(通過襪子打開)
4
A
回答
6
http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html從
SOCKS協議,如在RFC 1928中定義,提供了一個框架的客戶端服務器應用程序無論是在TCP和UDP級安全地穿越防火牆。從這個意義上講,它比更高級別的代理(如HTTP或FTP特定的代理)更通用。 J2SE 5.0爲客戶端TCP套接字提供SOCKS支持。
有2個與SOCKS系統屬性:
socksProxyHost
的SOCKS代理服務器
socksProxyPort
的端口號的主機名,默認值是1080
注意,沒有點('。')這個前綴後面。這是出於歷史原因並確保向後兼容。一旦以這種方式指定SOCKS代理,將通過代理嘗試所有TCP連接。
例子:
$ java -DsocksProxyHost=socks.mydomain.com GetURL
這裏,代碼的執行過程中,每個傳出的TCP套接字將通過SOCKS代理服務器在socks.mydomain.com:1080。
現在,當定義SOCKS代理和HTTP代理時會發生什麼?那麼規則是更高級協議的設置,比如HTTP或FTP,優先於SOCKS設置。因此,在這種特殊情況下,當建立HTTP連接時,SOCKS代理設置將被忽略,並且將聯繫HTTP代理。讓我們來看一個例子:
$ java -Dhttp.proxyHost=webcache.mydomain.com -Dhttp.proxyPort=8080 -DsocksProxyHost=socks.mydomain.com GetURL
這裏,HTTP URL將通過webcache.mydomain.com:8080因爲HTTP設置優先。但是,ftp URL呢?由於沒有爲FTP分配特定的代理設置,並且由於FTP位於TCP之上,因此將通過socks.mydomsain.com:1080上的SOCKS代理服務器嘗試FTP連接。如果已經指定了FTP代理,那麼該代理將被使用。
2
因爲截拳道1.5,還可以通過編程插座配置代理服務器:
例如:
SocketAddress sa = InetSocketAddress.createUnresolved("mysocksproxy.com", 1080);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, sa);
Socket s = new Socket(proxy);
您還可能希望把這個代碼的SocketFactory。
相關問題
- 1. 通過襪子打開
- 2. php - 襪子代理
- 3. mysql代理襪子
- 4. 襪子代理HttpWebRequest
- 5. 襪子5代理Perl的
- 6. 如何設置襪子在Java郵件
- 7. javamail忽略襪子代理
- 8. 在android中的udp連接的襪子
- 9. 在android中的襪子代理
- 10. 龍捲風中的襪子代理AsyncHttpClient
- 11. c中的襪子代理驗證
- 12. 如何在HtmlUnit中使用襪子
- 13. 襪子4綁定在php示例中
- 14. Python ssh客戶端通過襪子(代理)
- 15. 插座和襪子有什麼區別?
- 16. C/C++高效襪子反向代理
- 17. 修改ip地址襪子捕獲pcap
- 18. Apache HTTP客戶端襪子代理
- 19. IPC vs域襪子與命名管道
- 20. 使用PHP製作襪子代理
- 21. 非阻塞PASV襪子和阻塞
- 22. 使用WebClient和襪子代理
- 23. C#隧道/大橋從HTTP到襪子
- 24. javascript socket可以聽unix襪子嗎?
- 25. httplib python/wxpython。襪子流錯誤
- 26. NGINX - 連接到UNIX襪子失敗
- 27. 襪子4綁定請求解釋
- 28. 關閉python中的襪子/代理連接
- 29. 在Android模擬器中設置襪子代理
- 30. Bazaar CVS(bzr)with proxy(使用tor的襪子)
這是否也會導致UDP連接(Dgram)通過指定的代理? – hexafraction 2013-05-20 20:37:08