簡體   English   中英

TCP連接到路由器如何通訊? (Telnet客戶端)

[英]tcp connection to router how to communicate? (Telnet Client)

我正在嘗試構建一個程序,該程序將連接到IP地址(最好是路由器的IP地址)到特定端口(主要是80),並將嘗試進行身份驗證,然后繼續執行進一步的操作。

我開始時不知道如何與路由器/服務器通信,所以我這樣做了:

while (tcpSocket.Available > 0)
{
  int input = tcpSocket.GetStream().ReadByte();

但是它總是得到一個tcpSocket.Available = 0,所以我發現我必須發送一個特定的cmd才能與我交談。 http://msdn.microsoft.com/en-us/library/cc247846.aspx

並做了這個

var client = new TcpClient(ip, port);
var data = Encoding.GetEncoding(1252).GetBytes(cmd);
var stm = client.GetStream();
stm.Write(data, 0, data.Length);

現在我不明白如何基於此http://www.ietf.org/rfc/rfc2941.txt將cmd格式化為37-1?

感謝您閱讀PS不知道我是否應該將此指向SuperUser或ServerFault

我認為您需要回到更簡單的問題和調查上。

第一:您要連接的服務器上實際上正在運行什么協議? 端口80表示它是HTTP(端口80通常為HTTP保留)。 Telnet通常在端口23上運行。
如果是HTTP,則需要遵循RFC 2616中定義的協議(以及RFC 2617中定義的身份驗證選項)。

甚至更簡單:使用PuTTY(或其他首選的telnet客戶端)連接到服務器。 您需要做什么才能登錄? 如果是telnet服務器,則可能會顯示一個標語,后跟一個登錄提示。 您將鍵入用戶名,然后返回,然后將顯示密碼提示。 如果它是HTTP服務器,那么它可能什么都不顯示,但是鍵入HTTP/1.0 (返回) HEAD / (返回),您應該看到HTTP消息響應。 無論您需要使用PuTTY做什么,您的程序都需要做完全相同的事情。

暫無
暫無

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

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