簡體   English   中英

cmd.exe中的TELNET命令與C#中的Socket編程之間的區別

[英]Difference between TELNET Command in cmd.exe and Socket programming in c#

我有一台機器,通過傳遞IP地址和端口號在cmd.exe中使用TELNET命令連接到計算機。成功連接后,我傳遞了一些命令以完成任務。但是每次打開命令提示符並執行任務像提到的那樣不是客戶想要的東西。他們希望過程自動化。由於在c#中有一些Socket程序的經驗,我嘗試使用ip地址和端口號通過套接字程序進行連接,並傳遞命令以完成任務但是套接字編程並沒有完成任務。

所以我的問題是,是否可以使用c#中的Socket編程通過cmd.exe中的telnet命令來完成相同的任務?

請幫我。 提前致謝。

這是我在C#中的代碼以連接到計算機,但它無法執行所需的任務。它無法執行cmd.exe中通過TELNET命令執行的任務。

            int intport;
            int.TryParse(port1, out intport);

            TcpClient client = new TcpClient();
            textfileSaveLocation = "some location";

            try
            {
                using (StreamWriter writer = new StreamWriter(textfileSaveLocation, true))
                {
                    writer.WriteLine("Before Connection !");
                }

                client.Connect(new IPEndPoint(IPAddress.Parse(ip), intport));

                Thread.Sleep(5000);


                using (StreamWriter writer = new StreamWriter(textfileSaveLocation, true))
                {
                    writer.WriteLine("Connected To Machine !");
                }

            }
            catch (Exception ex)
            {
                // Log the error here.
                client.Close();

                using (StreamWriter writer = new StreamWriter(textfileSaveLocation, true))
                {
                    writer.WriteLine("Connection Error !");
                }

                continue;
            }

            try
            {
                using (NetworkStream stream = client.GetStream())
                {

                    byte[] username = Encoding.ASCII.GetBytes(user + "\r\n");
                    stream.Write(username, 0, username.Length);

                    Thread.Sleep(5000);

                    using (StreamWriter writer = new StreamWriter(textfileSaveLocation, true))
                    {
                        writer.WriteLine("UserName Enetered !");
                    }

                    byte[] password = Encoding.ASCII.GetBytes(pass + "\r\n");
                    stream.Write(password, 0, password.Length);

                    Thread.Sleep(5000);

                    using (StreamWriter writer = new StreamWriter(textfileSaveLocation, true))
                    {
                        writer.WriteLine("Password Passed !");
                    }

                    byte[] terminal = Encoding.ASCII.GetBytes(port2 + "\r\n");
                    stream.Write(terminal, 0, terminal.Length);

                    Thread.Sleep(5000);

                    using (StreamWriter writer = new StreamWriter(textfileSaveLocation, true))
                    {
                        writer.WriteLine("Terminal Value Entered !");
                    }


                client.Close();

是的,有可能。

Google搜索關鍵字:C#Telnet CLient

第一個結果: http : //www.codeproject.com/Articles/19071/Quick-tool-A-minimalistic-Telnet-library

可以使用TcpClient編寫一個簡單的客戶端:

var client = new TcpClient("localhost", 25);
const string crlf = "\r\n";
var networkStream = client.GetStream();
var streamReader = new StreamReader(client.GetStream());

// Receive data from server
var serverResponse = streamReader.ReadLine();
Console.WriteLine("Server: " + serverResponse);

// Send data to server
const string data = "Command to server " + crlf;
byte[] buffer = System.Text.Encoding.ASCII.GetBytes(data);
networkStream.Write(buffer, 0, buffer.Length);

networkStream.Close();
client.Close();

讓我們復活死的(舊的)問題。

相反,我正在尋找一種使用SuperSocket進行套接字編程的方法 我試過了,它可以和cmd的telnet一起使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM