Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #24176

java proxy server problem

Newsgroups comp.lang.java.programmer
Date 2013-05-24 04:12 -0700
Message-ID <a08b9724-2780-487b-bdc8-9cda348808a2@googlegroups.com> (permalink)
Subject java proxy server problem
From mcheung63@gmail.com

Show all headers | View raw


Dear All
   My proxy server just work in one level forward, That mean vncviewer->my proxy server->vnc server works.
But for two levels forward, vncviewer->my proxy server->my proxy server > vncserver doesn't work, so why?

thanks
from Peter (cmk128@hotmail.com)


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class SimpleProxyServer {
	public static void main(String[] args) throws IOException {
		try {
			String host = "210.5.164.14";
			int remoteport = 5999;
			int localport = 1234;
			// Print a start-up message
			System.out.println("Starting proxy for " + host + ":" + remoteport + " on port " + localport);
			// And start running the server
			runServer(host, remoteport, localport); // never returns
		} catch (Exception e) {
			System.err.println(e);
		}
	}

	/**
	 * runs a single-threaded proxy server on the specified local port. It never
	 * returns.
	 */
	public static void runServer(String host, int remoteport, int localport) throws IOException {
		// Create a ServerSocket to listen for connections with
		ServerSocket ss = new ServerSocket(localport);

		final byte[] request = new byte[1024];
		byte[] reply = new byte[4096];

		while (true) {
			Socket client = null, server = null;
			try {
				// Wait for a connection on the local port
				client = ss.accept();

				final InputStream streamFromClient = client.getInputStream();
				final OutputStream streamToClient = client.getOutputStream();

				// Make a connection to the real server.
				// If we cannot connect to the server, send an error to the
				// client, disconnect, and continue waiting for connections.
				try {
					server = new Socket(host, remoteport);
				} catch (IOException e) {
					PrintWriter out = new PrintWriter(streamToClient);
					out.print("Proxy server cannot connect to " + host + ":" + remoteport + ":\n" + e + "\n");
					out.flush();
					client.close();
					continue;
				}

				// Get server streams.
				final InputStream streamFromServer = server.getInputStream();
				final OutputStream streamToServer = server.getOutputStream();

				// a thread to read the client's requests and pass them
				// to the server. A separate thread for asynchronous.
				Thread t = new Thread() {
					public void run() {
						int bytesRead;
						try {
							while ((bytesRead = streamFromClient.read(request)) != -1) {
								streamToServer.write(request, 0, bytesRead);
								streamToServer.flush();
							}
						} catch (IOException e) {
						}

						// the client closed the connection to us, so close our
						// connection to the server.
						try {
							streamToServer.close();
						} catch (IOException e) {
						}
					}
				};

				// Start the client-to-server request thread running
				t.start();

				// Read the server's responses
				// and pass them back to the client.
				int bytesRead;
				try {
					while ((bytesRead = streamFromServer.read(reply)) != -1) {
						streamToClient.write(reply, 0, bytesRead);
						streamToClient.flush();
					}
				} catch (IOException e) {
				}

				// The server closed its connection to us, so we close our
				// connection to our client.
				streamToClient.close();
			} catch (IOException e) {
				System.err.println(e);
			} finally {
				try {
					if (server != null)
						server.close();
					if (client != null)
						client.close();
				} catch (IOException e) {
				}
			}
		}
	}
}

Back to comp.lang.java.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

java proxy server problem mcheung63@gmail.com - 2013-05-24 04:12 -0700
  Re: java proxy server problem Arne Vajhøj <arne@vajhoej.dk> - 2013-05-24 22:01 -0400
    Re: java proxy server problem Peter Cheung <cmk128@gmail.com> - 2013-05-26 20:22 -0700
      Re: java proxy server problem Arne Vajhøj <arne@vajhoej.dk> - 2013-05-27 12:47 -0400
  Re: java proxy server problem Michal Kleczek <michal_wytnijto@kleczek.org> - 2013-05-27 11:28 +0200

csiph-web