这个telnet实现有什么问题

时间:2014-03-25 08:48:57

标签: c# telnet

我正在尝试构建一个小型的紧凑型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();
}

在debuging时我收到System.dll中'System.Net.Sockets.SocketException'类型的未处理异常

1 个答案:

答案 0 :(得分:4)

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