comparison app/src/main/java/ch/ethz/ssh2/LocalPortForwarder.java @ 438:d29cce60f393

migrate from Eclipse to Android Studio
author Carl Byington <carl@five-ten-sg.com>
date Thu, 03 Dec 2015 11:23:55 -0800
parents src/ch/ethz/ssh2/LocalPortForwarder.java@071eccdff8ea
children
comparison
equal deleted inserted replaced
437:208b31032318 438:d29cce60f393
1 /*
2 * Copyright (c) 2006-2013 Christian Plattner. All rights reserved.
3 * Please refer to the LICENSE.txt for licensing details.
4 */
5
6 package ch.ethz.ssh2;
7
8 import java.io.IOException;
9 import java.net.InetSocketAddress;
10 import java.net.ServerSocket;
11
12 import ch.ethz.ssh2.channel.ChannelManager;
13 import ch.ethz.ssh2.channel.LocalAcceptThread;
14
15 /**
16 * A <code>LocalPortForwarder</code> forwards TCP/IP connections to a local
17 * port via the secure tunnel to another host (which may or may not be identical
18 * to the remote SSH-2 server). Checkout {@link Connection#createLocalPortForwarder(int, String, int)}
19 * on how to create one.
20 *
21 * @author Christian Plattner
22 * @version 2.50, 03/15/10
23 */
24 public class LocalPortForwarder {
25 final ChannelManager cm;
26
27 final String host_to_connect;
28
29 final int port_to_connect;
30
31 final LocalAcceptThread lat;
32
33 LocalPortForwarder(ChannelManager cm, int local_port, String host_to_connect, int port_to_connect)
34 throws IOException {
35 this.cm = cm;
36 this.host_to_connect = host_to_connect;
37 this.port_to_connect = port_to_connect;
38 lat = new LocalAcceptThread(cm, local_port, host_to_connect, port_to_connect);
39 lat.setDaemon(true);
40 lat.start();
41 }
42
43 LocalPortForwarder(ChannelManager cm, InetSocketAddress addr, String host_to_connect, int port_to_connect)
44 throws IOException {
45 this.cm = cm;
46 this.host_to_connect = host_to_connect;
47 this.port_to_connect = port_to_connect;
48 lat = new LocalAcceptThread(cm, addr, host_to_connect, port_to_connect);
49 lat.setDaemon(true);
50 lat.start();
51 }
52
53 /**
54 * Return the local socket address of the {@link ServerSocket} used to accept connections.
55 * @return
56 */
57 public InetSocketAddress getLocalSocketAddress() {
58 return (InetSocketAddress) lat.getServerSocket().getLocalSocketAddress();
59 }
60
61 /**
62 * Stop TCP/IP forwarding of newly arriving connections.
63 *
64 * @throws IOException
65 */
66 public void close() throws IOException {
67 lat.stopWorking();
68 }
69 }