C# Ts3与C的telnet连接#
我尝试在C#应用程序中使用telnet连接到TeamSpeak 3服务器 顺便说一句,我对使用telnet ^^不是很有经验,所以我在网站上展示了telnet代码 以下代码应:C# Ts3与C的telnet连接#,c#,telnet,teamspeak,C#,Telnet,Teamspeak,我尝试在C#应用程序中使用telnet连接到TeamSpeak 3服务器 顺便说一句,我对使用telnet ^^不是很有经验,所以我在网站上展示了telnet代码 以下代码应: 连接到teamspeak服务器 发送密码并宣读欢迎信息 发送命令“help”并读取帮助消息 string command = "help"; // creates new TCP client TcpClient client = new TcpClient(adress, port);
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)
在second查询中,应用程序停止而不返回任何验证
有人能解释为什么我无法读取帮助消息吗?应用程序出现停止的原因是,如果没有可读取的数据且连接仍处于打开状态,应用程序将被阻止。请注意,在调用
stream.Read(data2,0,data2.Length)
之前,我们可以看到属性设置为false
现在,关于为什么没有可用数据:您需要使用换行符终止命令,以便TeamSpeak知道命令已完成:
string command = "help\n";
...
// send the given command
byte[] data2 = Encoding.ASCII.GetBytes(command);
stream.Write(data2, 0, data2.Length);
出于同样的原因,您的第一个查询实际上没有成功。欢迎消息由服务器在connect上发送;这不是对你命令的回应。此外,我看不到password
的值是多少,但是如果您打算登录完整的命令是login
,如下所示:
TS3欢迎使用TeamSpeak 3服务器查询界面,键入“帮助”可查看命令列表,键入“帮助”可查看特定命令的信息。
登录服务器管理员hunter2
错误id=0消息=ok
如果您不反对使用库,我在(code at)有一个NuGet软件包,它可以为您完成所有telnet通信…感谢您的提议,但当我能够自己实现所有功能时,我总是很高兴。让我知道我在做什么^^是的,我也有点像。看看Github上的代码,如果您仍然被卡住了。祝你好运