这个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

这个Telnet实现有什么问题?

异常的消息是什么?有内部异常吗?您使用正确的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);