السلام عليكم جميعا
أود أن أقوم بتنفيذ أمر 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
تحياتى لك
وتمنياتى لك التوفيق
(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 و الفيديو استفدت منه ربنا يباركلك