Java Reference
In-Depth Information
private static final Logger logger = Logger . getLogger ( "Redirector" );
private final int port ;
private final String newSite ;
public Redirector ( String newSite , int port ) {
this . port = port ;
this . newSite = newSite ;
}
public void start () {
try ( ServerSocket server = new ServerSocket ( port )) {
logger . info ( "Redirecting connections on port "
+ server . getLocalPort () + " to " + newSite );
while ( true ) {
try {
Socket s = server . accept ();
Thread t = new RedirectThread ( s );
t . start ();
} catch ( IOException ex ) {
logger . warning ( "Exception accepting connection" );
} catch ( RuntimeException ex ) {
logger . log ( Level . SEVERE , "Unexpected error" , ex );
}
}
} catch ( BindException ex ) {
logger . log ( Level . SEVERE , "Could not start server." , ex );
} catch ( IOException ex ) {
logger . log ( Level . SEVERE , "Error opening server socket" , ex );
}
}
private class RedirectThread extends Thread {
private final Socket connection ;
RedirectThread ( Socket s ) {
this . connection = s ;
}
public void run () {
try {
Writer out = new BufferedWriter (
new OutputStreamWriter (
connection . getOutputStream (), "US-ASCII"
)
);
Reader in = new InputStreamReader (
new BufferedInputStream (
connection . getInputStream ()
Search WWH ::




Custom Search