这个Telnet实现有什么问题?
本文关键字:问题 什么 Telnet 实现 这个 | 更新日期: 2023-09-27 17:53:11
我试图构建一个小型紧凑的telnet工具因此,我决定先处理发送而不等待响应部分
问题是,不管我用哪个指南,我就是不能使它工作
我在这里错过了什么?
public void SendTelnetCommand(string Command , string IPofAP)
{
IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(IPofAP), 23);
TcpClient tcpSocket;
tcpSocket = new TcpClient(endpoint);
if (!tcpSocket.Connected) return;
byte[] buf = System.Text.ASCIIEncoding.ASCII.GetBytes(Command);
tcpSocket.GetStream().Write(buf, 0, buf.Length);
if (tcpSocket.Connected) tcpSocket.Close();
}
在调试时,我得到一个未处理的异常类型'System.Net.Sockets。SocketException' in System.dll
异常的消息是什么?有内部异常吗?您使用正确的IP地址(IPv4还是IPv6?)?此外,您还必须从流中读取。
然而,您的问题很可能是使用了错误的TcpClient
构造函数。接受端点的是侦听器,而不是客户机。你必须使用主机名+端口过载。
也就是说,试试这个:
public void SendTelnetCommand(string Command, string IPofAP)
{
TcpClient tcpSocket = new TcpClient(IPofAP, 23);
if (!tcpSocket.Connected) return;
byte[] buf = System.Text.ASCIIEncoding.ASCII.GetBytes(Command);
tcpSocket.GetStream().Write(buf, 0, buf.Length);
if (tcpSocket.Connected) tcpSocket.Close();
}
您也可以使用IPEndPoint
连接到服务器,但是,您必须使用无参数构造函数,并调用tcpSocket.Connect(endpoint);