如何將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. 襪子代理HttpWebRequest
- 3. php - 襪子代理
- 4. mysql代理襪子
- 5. 如何設置襪子在Java郵件
- 6. c中的襪子代理驗證
- 7. 襪子4綁定在php示例中
- 8. 如何在HtmlUnit中使用襪子
- 9. Python ssh客戶端通過襪子(代理)
- 10. 使用PHP製作襪子代理
- 11. 非阻塞PASV襪子和阻塞
- 12. IPC vs域襪子與命名管道
- 13. javascript socket可以聽unix襪子嗎?
- 14. 襪子4綁定請求解釋
- 15. 插座和襪子有什麼區別?
- 16. C/C++高效襪子反向代理
- 17. NGINX - 連接到UNIX襪子失敗
- 18. C#隧道/大橋從HTTP到襪子
- 19. 修改ip地址襪子捕獲pcap
- 20. 關閉python中的襪子/代理連接
- 21. 在Android模擬器中設置襪子代理
- 22. Bazaar CVS(bzr)with proxy(使用tor的襪子)
- 23. 紅襪:合併有墊
- 24. 但丁服務器未知襪子版本
- 25. Gunicorn沒有運行無法連接到襪子文件
- 26. 用C#創建襪子主機用於http代理轉發
- 27. 簡單襪子代理碼? (Arduino +以太網模塊)
- 28. 如何使龍捲風TCPClient使用代理(HTTP或襪子)?
- 29. 有沒有辦法使用aiohttp客戶端與襪子代理?
- 30. 結果不同;的recv(襪子,BUF,的sizeof(BUF),0)和strlen的(BUF)中的C++
這是否也會導致UDP連接(Dgram)通過指定的代理? – hexafraction 2013-05-20 20:37:08