日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java setsession_Java Session.setServerAliveInterval方法代码示例

發布時間:2023/12/1 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java setsession_Java Session.setServerAliveInterval方法代码示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

import com.jcraft.jsch.Session; //導入方法依賴的package包/類

private Session startNewSession(boolean acquireChannel) throws JSchException, InterruptedException {

Session newSession = null;

final AtomicBoolean cancelled = new AtomicBoolean(false);

ConnectingProgressHandle.startHandle(env, new Cancellable() {

@Override

public boolean cancel() {

cancelled.set(true);

return true;

}

});

try {

while (!cancelled.get()) {

try {

newSession = jsch.getSession(env.getUser(), env.getHostAddress(), env.getSSHPort());

int serverAliveInterval = Integer.getInteger("jsch.server.alive.interval", 0); // NOI18N

if (serverAliveInterval > 0) {

newSession.setServerAliveInterval(serverAliveInterval);

int serverAliveCount = Integer.getInteger("jsch.server.alive.count", 5); // NOI18N

newSession.setServerAliveCountMax(serverAliveCount);

}

newSession.setUserInfo(userInfo);

for (Entry entry : jschSessionConfig.entrySet()) {

newSession.setConfig(entry.getKey(), entry.getValue());

}

Authentication auth = Authentication.getFor(env);

final String preferredAuthKey = "PreferredAuthentications"; // NOI18N

if (!jschSessionConfig.containsKey(preferredAuthKey)) {

String methods = auth.getAuthenticationMethods().toJschString();

if (methods != null) {

log.finest("Setting auth method list to " + methods); //NOI18N

newSession.setConfig(preferredAuthKey, methods);

}

}

if (USE_JZLIB) {

newSession.setConfig("compression.s2c", "[email?protected],zlib,none"); // NOI18N

newSession.setConfig("compression.c2s", "[email?protected],zlib,none"); // NOI18N

newSession.setConfig("compression_level", "9"); // NOI18N

}

if (RemoteStatistics.COLLECT_STATISTICS && RemoteStatistics.COLLECT_TRAFFIC) {

newSession.setSocketFactory(MeasurableSocketFactory.getInstance());

}

newSession.connect(auth.getTimeout()*1000);

break;

} catch (JSchException ex) {

if (!UNIT_TEST_MODE) {

String msg = ex.getMessage();

if (msg == null) {

throw ex;

}

if (msg.startsWith("Auth fail") || msg.startsWith("SSH_MSG_DISCONNECT: 2")) { // NOI18N

PasswordManager.getInstance().clearPassword(env);

}

} else {

throw ex;

}

} catch (CancellationException cex) {

cancelled.set(true);

}

}

if (cancelled.get()) {

throw new InterruptedException("StartNewSession was cancelled ..."); // NOI18N

}

// In case of any port-forwarding previously set for this env

// init the new session appropriately

portForwarding.initSession(newSession);

sessions.put(newSession, new AtomicInteger(JSCH_CHANNELS_PER_SESSION - (acquireChannel ? 1 : 0)));

log.log(Level.FINE, "New session [{0}] started.", new Object[]{System.identityHashCode(newSession)}); // NOI18N

} finally {

ConnectingProgressHandle.stopHandle(env);

}

return newSession;

}

總結

以上是生活随笔為你收集整理的java setsession_Java Session.setServerAliveInterval方法代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。