Descriere
Serverul proxy C ++ TCP este un utilitar simplu care utilizeaza biblioteca de retea ASIO, pentru conectarea proxy (tunelare sau redirectionare) de la clienti externi la un server specific. Serverul TCP Proxy poate fi utilizat pentru a facilita si eficient:
- Limitati numarul de conexiuni client la server
- Incarcati conexiunile clientului intre mai multe instante de server
- Furnizati IP sau mecanisme de control al accesului bazate pe timp de conexiune
- Inspectati (jurnal), filtrati sau modificati altfel datele care curg intre clienti si server
Descarca
http://www.partow.net/programming/tcpproxy/index.html
Compatibilitate
Implementarea serverului C ++ TCP Proxy este compatibila cu urmatoarele compilatoare C ++:
- GNU Compiler Collection (4.1+)
- Compilator Intel® C ++ (9.x +)
- Clang / LLVM (1.1+)
- PGI C ++ (10.x +)
- Compilator Microsoft Visual Studio C ++ (8.1+)
- IBM XL C / C ++ (10.x +)
Internele Proxy-ului
Proxy-ul dintr-un aspect de implementare este alcatuit in principal din trei componente numite Acceptor , Session si ASIO I / O Service proactor. Componentele acceptorului si sesiunii se inregistreaza la cererile de servicii I / O si la handlerele de completare asociate (callbacks) pentru citire si scriere din socket (socket). Diagrama de stare de mai jos prezinta diferitii gestionari de finalizare si relatia lor cu componenta de serviciu I / O. In scopuri de expunere, sa presupunem ca gestionarele de finalizare si componenta de serviciu I / O sunt fiecare o stare unica intr-o masina de stare care reprezinta proxy-ul TCP.
Serverul proxy TCP este impartit in trei „grupari” functionale denotate in diagrama de culorile albastru, verde si rosu atasate la tranzitiile dintre stari (handlers de finalizare) si serviciul I / O. Gruparile sunt rezumate dupa cum urmeaza:
Faza Tranzitii Definitie Albastru 1 – 8 Start-up si faza de instantiere a conexiunii clientului.
porno tens jovenes zorras
mi mujer es muy puta follada por su jefe
viejas tetonas comic maduras
chupadas mamadas a dos bocas
mamadas en la playa pollones enormes
abuelas incestos mama incesto
chantaje y lujuria se folla a su hijo
hermanas tetonas porno españa casero
enseñando a follar humillada y follada
corridas en el culo follame xxx
videos porno manga porno iberico
madres que se follan a sus hijos porno maduras en español
guarras masturbandose penes negros
peliculas x en castellano peliculas porno de viejas
amas de casa follando mamas cachondas
voyeur playa abuelos calientes
jovencitas xxx hd porno de abuelas
videos porno gratis caseros milf squirt
violada xxx mi vecina me folla
mi mujer follando porno agresivo
Verde A1 – A4 Procesul de flux de date de la serverul de la distanta la proxy la client. Rosu B1 – B4 Procesul de flux de date de la client la proxy catre serverul de la distanta.
Faza albastra – Pornire si initializare
In aceasta faza este configurat proxy-ul in sine, care include instantierea acceptorului, legarea si ascultarea pe adresa IP si numarul portului si invocarea metodei accept_connections , care la randul sau va inregistra un handler de finalizare cu serviciul I / O, care va fi invocat ulterior cand se fac noi conexiuni la serverul proxy.
Atunci cand un client face o conexiune la serverul reprezentant, handle_accept handler de finalizare va fi invocat de catre serviciul de I / O. Acest handler va proceda apoi la instantierea si pornirea unei instante de sesiune client (bridge). Odata ce acest lucru este complet, va invoca accept_connections care va finaliza ciclul prin reinregistrarea metodei handle_accept cu serviciul I / O ca handler de finalizare pentru orice conexiuni noi.
Intre timp, cand metoda de pornire a sesiunii client a fost invocata in timpul apelului handle_accept , a incercat imediat sa stabileasca asincron o conexiune cu serverul la distanta. Cand serverul de la distanta accepta conexiunea, serviciul I / O va invoca handler-ul de finalizare handle_upstream_connect . La randul sau, acest handler va inregistra doua cereri de citire asincrone, impreuna cu handlerele de finalizare handle_downstream_read si handle_upstream_read cu serviciul I / O, unul pentru datele provenite de la client, celalalt fiind pentru datele provenite de la serverul de la distanta.
Pe baza datelor punctului final care ajunge la proxy, va fi angajata una dintre urmatoarele faze:
- Faza Verde
- Faza Rosie
Faza verde – Server la distanta catre proxy catre fluxul de date al clientului
Aceasta faza este angajata atunci cand datele de la serverul la distanta (cunoscut si ca punct final up-stream) ajung la proxy. Odata ce o anumita cantitate de date este gata, serviciul I / O va invoca handler-ul de finalizare handle_upstream_read . La randul sau, acest handler va prelua datele si va inregistra o cerere de scriere asincrona cu serviciul I / O pentru a trimite datele catre punctul final al Clientului. Odata ce solicitarea de scriere a fost finalizata, serviciul I / O va invoca handler-ul de finalizare handle_downstream_write . Acest handler va finaliza ciclul pentru faza verde prin reinregistrarea la serviciul I / O a unei cereri de citire asincrona de la punctul final din amonte cuplata cu metoda handle_upstream_read ca handler de finalizare asociat.
Faza rosie – Client catre proxy catre fluxul de date de la distanta al serverului
Aceasta faza este angajata atunci cand datele de la client (cunoscut si ca punct final in aval) ajung la proxy. Odata ce o anumita cantitate de date este gata, serviciul I / O va invoca handlerul de finalizare handle_downstream_read . La randul sau, acest handler va prelua datele si va inregistra o cerere de scriere asincrona cu serviciul I / O pentru a trimite datele catre punctul final al serverului la distanta. Odata ce cererea de scriere a fost finalizata, serviciul I / O va invoca handler-ul de finalizare handle_upstream_write . Acest handler va finaliza ciclul pentru faza rosie reinregistrand la serviciul I / O o cerere de citire asincrona de la punctul final din aval cuplata cu metoda handle_downstream_read ca handler de finalizare asociat.
Procesul de inchidere a podului
Cand oricare dintre punctele finale isi incheie conexiunea respectiva cu proxy-ul, proxy-ul va continua sa inchida (sau sa opreasca) cealalta conexiune corespunzatoare. Aceasta include eliberarea oricaror solicitari asincrone restante, care culmineaza cu numarul de referinte al podului (sesiunea clientului) ajungand la zero, moment in care instanta de punte in sine va avea ulterior denumita distructorul sau.








