import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
/**
* @author yx
* @date 2020/9/12 18:55
* Description 本类为tcp代理工具类BIO版本,可以直接用本机的某个端口代理他可以访问到的任意一台主机的任意端口,因为连接会自动超时,
* * 程序会抛出异常属于正常现象,再次请求会 自动连接,本次测试以代理mysql端口和sftp端口为例
*/
@SuppressWarnings("all")
public class NIOProxy extends Thread {
ByteBuffer readBuffer = ByteBuffer.allocate(1024);
//用于监听key的请求
Selector selector;
InetSocketAddress remote;
public static void main(String[] args) throws IOException {
String remoteAddr = "192.1.1.1";
int remotePort = 80;
int localPort = 801;
new NIOProxy(localPort, remoteAddr, remotePort).start();
}
@Override
public void run() {
Java端口转发 ,代理实现
于 2022-04-25 12:12:51 首次发布