منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : أريد ان انفذ امر عن طريق SSH لجهاز اندرويد عن طريق VB.NET
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم جميعا

أود أن أقوم بتنفيذ أمر reboot لجهاز اندرويد او لينكس عن طريق مكتبة SSHNET و قمت بكتابة هذا الكود:


كود :
       Dim connInfo As New Renci.SshNet.PasswordConnectionInfo("192.168.1.1", 22, "root", "password.")
       Dim sshClient As New Renci.SshNet.SshClient(connInfo)


       Dim cmd As Renci.SshNet.SshCommand


       sshClient.Connect()

       cmd = sshClient.CreateCommand("reboot
")
       cmd.Execute()
       sshClient.Disconnect()


لكن الكوماند يتوقف عن\ cmd.Execute و واجهة البرنامج بتعلق و لما اعمل pause for debugging ألاحظ ان الكود يتوقف عن cmd.execute و لا يكمل و ينهي الاتصال؟ أين المشكلة؟ سمعت انه هذه المكتبة لا تعمل بشكل مناسب Renci SSHNET ؟ هل يوجد حل لهذه المشكلة و شكرا لكم جميعا
وعليكم السلام ورحمة الله وبركاته

يفضل ارفاق مثال من المشروع
حتى يتم اختبار المكتبة التى تستخدمها ما دور كل كود
وما المطلوب بكل قيمة حتى يتم افادتك كيفية استخدام الكود بصورة صحيحة

تحياتى لك
وتمنياتى لك التوفيق
شكرا دزيلا على الرد 
نعم هذا كود البرنامج البسيط الذي أختبره. الكود بيعمل SSH SESSION الى الموبايل لكن التطبيق بعلق و لما اعمل PAUSE  بشوف انه وقف عن CMD=SSHCLIENT.RUNCOMMAND  بدون أن ينفذ الامر و جربته على لينكس أيضا نفس المشكلة

كود :
Imports System.Text.RegularExpressions
Imports System.Net.Sockets
Imports Renci.SshNet
Imports System
Imports Renci.SshNet.Common
Imports Renci.SshNet.Messages.Connection
Imports Renci.SshNet.Messages.Transport
Imports System.IO
Imports System.ComponentModel

Public Class Form1



   Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click

       Dim connInfo As New Renci.SshNet.PasswordConnectionInfo("192.168.1.1", 22, "root", "paswword")
       Dim sshClient As New Renci.SshNet.SshClient(connInfo)

       Dim cmd As Renci.SshNet.SshCommand

        
        
       sshClient.Connect()
       cmd = sshClient.RunCommand("reboot")
       sshClient.Disconnect()



   End Sub


End Class
هذا رابط المكتبة اللي استعملها: Renci SSHNET
الشكر لله والحمد لله
والحمد لله على كل حال

فى البداية بخصوص كود الاتصال

بناءاً على رابط فهو يحتوى على كود طريقة الاتصال وهو
كود :
       Dim ConnInfo As ConnectionInfo = New ConnectionInfo("sftp.foo.com", "guest", New PasswordAuthenticationMethod("guest", "pwd"), New PrivateKeyAuthenticationMethod("rsa.key"))
       Using client As SftpClient = New SftpClient(ConnInfo)
           client.Connect()
       End Using

هذا الكود Vb.Net بعد تحويله من C#
ثانياً بخصوص هذا السطر
كود :
sshClient.RunCommand("reboot")

لا اعلم اذا كان الامر يفترض ان يكتب فى RunCommand أم انه يكتب فى WriteLine
انا حتى الان لم اعمل على المكتبة والاطلاع عليها ولعل بنهاية اليوم اذا كنت متفرغ ساقوم بذلك

ولكن حتى هذا الامر يفضل مراجعة هذا الفيديو فهو يخص هذا الادا على Vb.Net
https://www.youtube.com/watch?v=Uuo8NnByIF4

تحياتى لك
وتمنياتى لك التوفيق
(20-04-19, 10:25 AM)elgokr كتب : [ -> ]
الشكر لله والحمد لله
والحمد لله على كل حال

فى البداية بخصوص كود الاتصال

بناءاً على رابط فهو يحتوى على كود طريقة الاتصال وهو
كود :
       Dim ConnInfo As ConnectionInfo = New ConnectionInfo("sftp.foo.com", "guest", New PasswordAuthenticationMethod("guest", "pwd"), New PrivateKeyAuthenticationMethod("rsa.key"))
       Using client As SftpClient = New SftpClient(ConnInfo)
           client.Connect()
       End Using

هذا الكود Vb.Net بعد تحويله من C#
ثانياً بخصوص هذا السطر
كود :
sshClient.RunCommand("reboot")

لا اعلم اذا كان الامر يفترض ان يكتب فى RunCommand أم انه يكتب فى WriteLine
انا حتى الان لم اعمل على المكتبة والاطلاع عليها ولعل بنهاية اليوم اذا كنت متفرغ ساقوم بذلك

ولكن حتى هذا الامر يفضل مراجعة هذا الفيديو فهو يخص هذا الادا على Vb.Net

تحياتى لك
وتمنياتى لك التوفيق

تسلم أخي بارك الله فيك و ربنا يزيدك من فضله...نعم المفروض الامر يكون على مستوى WriteLine و الفيديو استفدت منه ربنا يباركلك
لى ولك وللجميع بامر الله

تحياتى لك
وتمنياتى لك التوفيق