1. 程式人生 > >SOCKET代理實現方法

SOCKET代理實現方法

代理伺服器的工作機制很象我們生活中常常提及的代理商,假設你的機器為A機,你想獲得的資料由B機提供,代理伺服器為C機,那麼具體的連線過程是這樣的。 首先,A機需要B機的資料,它與C機建立連線,C機接收到A機的資料請求後,與B機建立連線,下載A機所請求的B機上的資料到本地,再將此資料傳送至A機,完成代理任務。

HTTP、SOCK、FTP代理的區別
● 瀏覽器用HTTP或SOCK代理。
● 下載軟體用HTTP或SOCK代理。
● 上傳軟體用FTP或SOCK代理。
● 其他的一般用SOCK代理。(聊天,MUD遊戲等)
SOCK代理使用範圍很廣,但SOCK有SOCK4和SOCK5之分,有什麼區別呢?其中SOCK4只支援TCP協議;SOCK5支援TCP和UDP協議,還支援身份驗證、伺服器端域名解釋等。SOCK4能幹的SOCK5都可以幹,反過來就不行。我們常用的聊天軟體(如QQ),用的是TCP和UDP協議的,所以QQ只能用SOCK5的代理。

目前在Windows平臺下代理伺服器軟體產品主要有:Microsoft Proxy,Microsoft ISA,Netscape Proxy、WinProxy、WinGate Pro、winRoute、SyGate以及CCProxy等等。

由於目前HTTP應用最廣泛,因為http代理的實現也是最重要的。http代理又有兩種認證方式: Proxy Basic認證和Proxy NTLM認證。

Proxy Basic認證一般用於 不太重要的場合,因為Basic認證時直接把使用者名稱密碼變一下形就從網路上傳過去了,隨便sniffer一下就能把這個 資料截獲從而得到 密碼。

Proxy NTLM認證用於正式場合,它的認證方式與Windows遠端登入的認證方式是一樣的,需要三次握手傳遞資訊,不在認證的過程中傳遞密碼,而且,每次認證傳遞的資訊都不一樣。

的兩種認證方式 糖果下載元件 都已經實現:



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1757676


相關推薦

SOCKET代理實現方法

代理伺服器的工作機制很象我們生活中常常提及的代理商,假設你的機器為A機,你想獲得的資料由B機提供,代理伺服器為C機,那麼具體的連線過程是這樣的。 首先,A機需要B機的資料,它與C機建立連線,C機接收到A機的資料請求後,與B機建立連線,下載A機所請求的B機上的資料到本地,再將此資料傳送至A機,完成代理任務。H

Nginx反向代理實現多個域名指向同一個ip的不同網站解決方法

一個伺服器需要掛載多個專案【重點是都能通過域名訪問】 實現原理: 1.當前市面上看到的一些伺服器,開放的埠一般都要求為 '80' 埠 所以80埠成了商用埠 2.域名的繫結是繫結一個一般是繫結你的伺服器ip地址 3.使用伺服器的80埠攔截訪問的域名是什麼跳轉至伺服器的其他 舉例 只有一臺伺服器

Java動態代理的兩種實現方法

AOP的攔截功能是由java中的動態代理來實現的。說白了,就是在目標類的基礎上增加切面邏輯,生成增強的目標類(該切面邏輯或者在目標類函式執行之前,或者目標類函式執行之後,或者在目標類函式丟擲異常時候執行。不同的切入時機對應不同的Interceptor的種類,如BeforeAd

分散式Web應用----基於Socket+動態代理實現簡單RPC 生產者消費者模型

寫在前面 前面一文主要簡單介紹了JAVA動態代理基本原理,這也是實現RPC的基本知識,這裡我們運用Socket簡單實現一個遠端過程呼叫,方便大家理解RPC的基本原理,希望對大家有所幫助。 新建People介面類與Man實現類 介面類 pu

java反射機制(2)- 實踐:反射機制+動態代理實現模擬RMI遠端方法呼叫

1 涉及主要知識點   1、RMI(Remote Method Invocation):遠端方法呼叫是一種計算機之間利用遠端物件互相呼叫實現雙方通訊的一種通訊機制。使用這種機制,某一臺計算機上

給ArrayList寫個代理實現方法過濾

public class ArraryListProxy { List list = new ArrayList(); public List getProxy(){ return (List)Proxy.newProxyInstance(ArrayList.cla

ATS 5.3.0在反向代理模式下實現正向代理功能方法

以前,我在records.config中一般是配置成正向+反向的形式: 現在我打算改為反向代理模式,但是需要實現正向代理的功能: 同時在remap.config中配置 regex_map http

系統性能監控系列1:使用JAVA動態代理實現非侵入式的效能測量方法

歡迎關注公眾號: 當我們開發的服務上線後,線上的系統執行狀態(是否正常,效能是否滿足需求)等等就成了架構師和研發工程師關心的問題 。對於系統監控有很多維度,比如:監控CPU,磁碟IO,監控服務請求的響應時間等。相對於這些來說,我今天要給大家分享的是具體的程式碼層次的

Linux下Socket連線超時的一種實現方法

目前各平臺通用的設定套接字(Socket)連線超時的辦法是: 建立套接字,將其設定成非阻塞狀態。呼叫connect連線對端主機,如果失敗,判斷當時的errno是否為EINPROGRESS,也就是說是不是連線正在進行中,如果是,轉到步驟3,如果不是,返回錯誤。用select在指定的超時時間內監聽套接字的寫就

基於Unix Socket的可靠Node.js HTTP代理實現(支援WebSocket協議)

實現代理服務,最常見的便是代理伺服器代理相應的協議體請求源站,並將響應從源站轉發給客戶端。而在本文的場景中,代理服務及源服務採用相同技術棧(Node.js),源服務是由代理服務fork出的業務服務(如下圖),代理服務不僅負責請求反向代理及轉發規則設定,同時也負責業務服務伸縮擴容、日誌輸出與相關資源監控報警。下

連接Mysql提示Can’t connect to local MySQL server through socket的解決方法

127.0.0.1 方式 mic div conn 三種 問題 ati my.cnf 轉:http://aiezu.com/article/mysql_cant_connect_through_socket.html 有時候,當我們使用“mysql”、“mysqladmin

C++差分隱私的指數機制的一種實現方法

list and span 機制 namespace stdio.h int class ++ #include <iostream> #include<stdio.h> #include<stdlib.h> #include<m

java-mybaits-00203-DAO-mapper代理開發方法,多參數【推薦】

tca alt 三種 ram 程序員 spl cep () void 程序員只需要mapper接口(相當 於dao接口) 不需要寫具體實現類,mapper已經代理完成,mybatis才有的 一、mapper代理開發方法(建議使用) 程序員在編寫map

虛擬代理實現圖片預加載

cti plus urn reload color load 會有 charset creat 1. 代碼如下 <!doctype html> <html lang="en"> <head> <meta chars

C#利用反射來判斷對象是否包含某個屬性的實現方法

是否 npr nbsp pro bsp str return ram ret 本文實例展示了C#利用反射來判斷對象是否包含某個屬性的實現方法,對於C#程序設計人員來說有一定的學習借鑒價值。 具體實現代碼如下: 1 /// <summary> 2 /// 利

老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?

邏輯卷管理 磁盤 每日一題 1.題目老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?2.參考答案01:將一個或多個物理分區創建為一個PV# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" success

最小化托盤的實現方法

fyi typedef hand delet odi 功能 content call not 在書上看到的,認為實用,記下了。 首先,最小化托盤的基本原理是,將應用程序的主窗口隱藏,然後在托盤中繪制應用程序的圖標。然後再為托盤圖標加入一些事件處理。 核心函數是Shell

aop用代理實現

his @override row pri pack new eve and 實現 package com.atguigu.java; import java.lang.reflect.InvocationHandler;import java.lang.reflect.M

Comparable、Iterator接口和Collections類的實現方法

left com 讓其 eve 集合 移除 () iter reverse   Comparable接口:     此接口強行對實現它的每個類的對象進行整體排序。這種排序被稱為類的自然排序,類的 compareTo 方法被稱為它的自然比較方法。     實現此接口的對象列表

tab 切換實現方法

pla containe handle 作者 pre 按鈕 lin ner 矛盾 ul li 實現方法(只適用於,一個頁面只有一組ul>li) <!--menu--> <div class="nav"> <ul class=