2017-09-06 255 views
1

我試圖通過android代碼連接到hdfs集羣,但我面臨着socketError中的問題。下面我包括日誌文件和代碼。連接正在正確建立,但在創建連接套接字時出現問題。socketError:權限被拒絕

Connect_Ssh: 
DllDate: Aug 30 2017 
ChilkatVersion: 9.5.0.69 
UnlockPrefix: Anything for 30-day trial 
Architecture: Little Endian; 32-bit 
Language: Android Java 
VerboseLogging: 0 
connectInner: 
hostname: 202.53.13.23 
port: 1032 
sshConnect: 
connectSocket: 
connect_ipv6_or_ipv4: 
ai_family: 2 
ai_socktype: 1 
ai_protocol: 6 
socketErrno: 13 
socketError: Permission denied 
Failed to create socket for connecting. 
--connect_ipv6_or_ipv4 
--connectSocket 
Failed to establish initial TCP/IP connection 
hostname: 202.53.13.23 
port: 1032 
--sshConnect 
--connectInner 
Failed. 
--Connect_Ssh 
--ChilkatLog 

這裏是打印上述日誌文件的代碼。 代碼:

package com.example.sunny.clusteraccess; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import com.chilkatsoft.CkSsh; 
public class MainActivity extends AppCompatActivity { 
private static final String TAG = "Chilkat"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    CkSsh ssh = new CkSsh(); 
    // Any string automatically begins a fully-functional 30-day trial. 
    boolean success = ssh.UnlockComponent("Anything for 30-day trial"); 
    if (success != true) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    String hostname; 
    int port; 
    // Hostname may be an IP address or hostname: 
    hostname = "202.53.13.23"; 
    port = 22; 

    success = ssh.Connect(hostname,port); 
    if (success != true) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    success = ssh.AuthenticatePw("student","kmit"); 
    if (success != true) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    Log.e(""+success,""); 
    int channelNum; 
    channelNum = ssh.OpenSessionChannel(); 
    if (channelNum < 0) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    success = ssh.SendReqExec(channelNum,"hdfs dfs -ls"); 
    if (success != true) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    success = ssh.ChannelReceiveToClose(channelNum); 
    if (success != true) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    String cmdOutput = ssh.getReceivedText(channelNum,"ansi"); 
    if (ssh.get_LastMethodSuccess() != true) { 
     Log.i(TAG, ssh.lastErrorText()); 
     return; 
    } 
    Log.e(TAG, cmdOutput); 
    ssh.Disconnect(); 
} 
static { 
    System.loadLibrary("chilkat"); 
} 
} 

回答

1

你給你的代碼中的互聯網權限?如果您還沒有做,請嘗試在清單 文件中添加此項。

<uses-permission android:name="android.permission.INTERNET" />