我正在尝试构建一个小型的紧凑型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'类型的未处理异常
答案 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);