Ganymed SSH-2 的Connection的authenticateWithPassword引發IOExcption

最近工程裏面在調用Ganymed SSH-2 的Connection的authenticateWithPassword(name,password)的方法的時候。發現一個BUG。連續調用authenticateWithPassword超過9次會IOException


因爲要利用authenticateWithPassword(name,password)方法登錄路由器的後臺,但是路由器的型號太多,導致路由器的密碼有十多個。

所以在鏈接的時候,只能讓密碼循環去調用authenticateWithPassword(name,password)方法,來登錄路由器

 重點來了:

先初始化Connection 對象,再進行鏈接。

Connection  conn = new Connection(host, port);

conn.connect();

// 這裏開始調用方法,登錄路由器的後臺

這個psws是一個數組,裏面是密碼的字符串,總共長度爲15!
for(int i=0;i<psws.length;i++){
//重點是這裏!當循環到第十次,也就是i=9的時候,authenticateWithPassword方法會直接拋出IOException!
//如果是9的倍數的時候,就重新初始化Connection 對象(這樣,Connection  對象就會指向一個新的內存地址)
	if(i!=0&&i%9==0){           
		conn = new Connection(host, port);
		conn.connect();
			}
//這裏就是登陸路由器的後臺(用賬號密碼登陸)
	isAuthenticated = conn.authenticateWithPassword(userName, psws[i]);
	if (isAuthenticated) {
		break;
		}
				}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章