Hvordan lage en proxy-server i Java

Hvordan lage en proxy-server i Java


Proxy-servere tilveiebringe den funksjon å virke som en server for videresending mellom en klientdatamaskin og en annen server. Når en person eller en annen datamaskin gjør en anmodning fra den eksterne serveren, vil fullmakten datamaskin server videre både klientmaskinen forespørsel samt den eksterne serveren svar tilbake. Begge maskinene har dataene videresendes til dem vet ikke at fullmakten er å gjøre tilkoblinger for begge. Som et resultat, har proxy-serveren for å kunne fylle både klient (forespørsel og motta) og server (svare på forespørsler) roller hverandre.

Bruksanvisning

1 Last ned og installer den nyeste java standard developer kit fra Sun Microsystems, hvis det ikke allerede er installert på datamaskinen (se Ressurser nedenfor). Åpne en teksteditor eller integrert utviklingsmiljø. For å støtte cross-kompatibilitet mellom klient og server roller som proxy-serveren trenger for å oppfylle, er et felles grensesnitt definert for å sikre data kompatibilitet. Java IO og Netto bibliotekene er importert og tre vanlige metoder er definert for Proxy-serveren til redskaper:
import

java.io.;
import java.net.;
grensesnitt mySockets
{
String readline ();
ugyldig wrtieLine (String myString);
ugyldig kast ();
}

2 Definer Prozy klasse ved å implementere SocketInterface. Klassen konstruktøren tar tre argumenter: 1 - The Host IP-adresse, port og om det bør vente for en tilkobling eller ikke.
public class SocketProxy implementerer mySockets
{
private Socket mySocket;

privat BufferedReader myIn;
private Printwriter myOut;
offentlig SocketProxy (String myHost, int myPort, boolsk myWait)
{

3 Vent på en ny tilkobling skal etableres. Når en gyldig tilkobling er opprettet, er en BufferedReader input stream åpnet og gått til et Printwriter klassen output stream, som vil bli brukt til å videresende informasjon.

try {
if (myWait) {
ServerSocket myServer = new ServerSocket( myPort );
mySocket = myServer.accept();
}
else
mySocket = new Socket( myHost, myPort );
myIn = new BufferedReader( new InputStreamReader(
mySocket.getInputStream()));
myOut = new PrintWriter( mySocket.getOutputStream(), true );
} catch( IOException e ) { e.printStackTrace(); }

}

4 Bruk readline metod er å lese inngangsstrømmen og gå tilbake til Writeline-metoden, som brukes til å sende informasjonen til utgangsstrømmen som skal sendes videre til klienten (eller motta) datamaskin.
public String readline () {

String myString = null;
try { myString = myIn.readLine();
} catch( IOException e ) { e.printStackTrace(); }
return myString;

}
public void Writeline (String myString) {

myOut.println( myString );

}

5 Lukk nettverket kontakten når Proxy-serveren er ferdig med bestått informasjon mellom klient- og servertilkoblinger.
public void kast () {

try {
mySocket.close();
} catch( IOException e ) { e.printStackTrace(); }

}}