java socket 端口转发遇到的问题

下面的程序运行之后,没有办法通过8081端口连上数据库服务器,这是为什么呢

package mis.client;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

import lcc.SysLog;

public class Client {

public static void main(String[] args) throws Exception {

    Socket toDb = new Socket("10.11.112.48", 1521);
    ServerSocket serverServer = new ServerSocket(8081);

    Socket toServer = serverServer.accept();

    InputStream toDbInStream = toDb.getInputStream();
    OutputStream toDbOutStream = toDb.getOutputStream();        


    InputStream toServerInStream = toServer.getInputStream();
    OutputStream toServerOutStream = toServer.getOutputStream();    

    System.out.println("客户端初始化完成");

    pipe(toDbInStream,toServerInStream,toServerOutStream,toDbOutStream);







}

private static void pipe(InputStream is0, InputStream is1, OutputStream os0,OutputStream os1) {
    try {
        int ir;
        byte bytes[] = new byte[1024];
        System.out.println(0);
        while (true) {
            try {
                if ((ir = is0.read(bytes)) > 0) {
                    System.out.println(1);
                    os0.write(bytes, 0, ir);
                } else if (ir < 0) {
                    break;
                }
            } catch (InterruptedIOException e) {
                System.out.println("error--1");
            }
            try {
                if ((ir = is1.read(bytes)) > 0) {
                    System.out.println(2);
                    os1.write(bytes, 0, ir);
                } else if (ir < 0) {
                    break;
                }
            } catch (InterruptedIOException e) {
                System.out.println("error--2");
            }

        }
    } catch (Exception e0) {
    }
}   

}
补充:我程序的意图是把目标服务器1521端口的的数据转发的本地8081端口上,然后我用plsql工具去连库,程序只负责转发数据,现在的情况是数据没有转发过来

2个回答

如果你的程序只有这些,是注定连不上的,数据库连接你可以暂时用jdbc。而且你这里只有数据库的ip和端口号,没有数据库的用户名密码以及ssid,差太多东西,肯定连不上。

socket传输需要一个发、一个收,你这个是客户端吗?服务端也得有个服务给客户端发呀

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问