我嘗試使用C#應用程序中的telnet連接到我的TeamSpeak 3服務器。Ts3與C#的telnet連接#
順便說一句,我不是使用telnet非常有經驗的^^」,所以我展示了遠程登錄的代碼在網站 https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient(VS.80).aspx
下面的代碼應:
- 連接到服務器teamspeak
- 發送密碼,並宣讀了歡迎消息
發送命令「幫助」並讀出幫助信息
string command = "help"; // creates new TCP client TcpClient client = new TcpClient(adress, port); // get client stream NetworkStream stream = client.GetStream(); // send Password Byte[] data = System.Text.Encoding.ASCII.GetBytes(password); stream.Write(data, 0, data.Length); data = new Byte[256]; Thread.Sleep(200); Int32 bytes = stream.Read(data, 0, data.Length); String responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); Console.WriteLine(responseData); // send the given command Byte[] data2 = System.Text.Encoding.ASCII.GetBytes(command); stream.Write(data2, 0, data2.Length); data2 = new Byte[2560]; Thread.Sleep(200); Int32 bytes2 = stream.Read(data2, 0, data2.Length); String responseData2 = System.Text.Encoding.ASCII.GetString(data2, 0, bytes2); Console.WriteLine(responseData2); // end stream and client stream.Close(); client.Close();
第一查詢的工作,因爲它應該和歡迎信息寫入到控制檯。但是,在第二個查詢中,在Int32 bytes2 = stream.Read(data2, 0, data2.Length);
處,應用程序停止而不返回任何豁免。
任何人都可以解釋爲什麼我不能讀出幫助信息嗎?
如果你並不反對使用庫我有一個NuGet包在https://www.nuget.org/packages/ Telnet(代碼位於https://github.com/9swampy/Telnet/)可以爲你做所有的telnet通信... – 9swampy
感謝你的提議,但是當我可以自己實現時,我總是很高興。所以我知道我在做什麼。 ^^ – Gonios
是的,我也有點喜歡。看看Github上的代碼,然後如果你仍然陷入困境。祝你好運。 – 9swampy