JSch를 사용하여 일부 장치를 연결할 때 연결만 하면 서버에 의해 끊어질 수 있습니다. 큰 구덩이!

6305 단어 백엔드 기술
이것은 사람을 괴롭히는 버그입니다. 제가 조사하는 데 많은 시간을 들여서야 원래 연결 시간의 기본 설정이 짧다는 것을 발견했습니다.
try {
            JSch jsch = new JSch();
            Logger log = new com.jcraft.jsch.Logger() {
                public boolean isEnabled(int i) {
                    //  、 
                    return true;
                }

                public void log(int i, String s) {
                    //  
                    // ItpUtil.log(s);
                }
            };
            JSch.setLogger(log);
            session = jsch.getSession(user, host, this.port);
            session.setConfig("PreferredAuthentications", "password");
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword(psw);
            session.setTimeout(60000);
            session.setServerAliveInterval(2000);// 
            session.connect(connTime);// 
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
 			channel = session.openChannel(SHELL);
            PrintWriter pw = new PrintWriter(channel.getOutputStream());
            channel.connect(2000);//   !! 。
            //channel.connect();//   0 。 。

어쨌든 사용할 때 주의하세요. 시간을 설정할 수 있는 곳은 모두 설정하고 기본 무참방법을 사용하지 마세요!!!!!!!일!

좋은 웹페이지 즐겨찾기