我想添加telnet到用户定义的IP和端口到目前正在处理的程序中的能力。我从网站上的前一个问题中得到了基本代码片段。我遇到的问题是我无法将文本字段传递给tcpClient.Connect方法的参数。如果我在参数字段中对IP地址进行硬编码,代码将正常工作,但如果我尝试传递字符串变量,则tcpClient.Connect不起作用,并且它会显示catch(异常)MessageBox,指出连接尝试失败。将字符串变量传递给tcpClient.Connect
我查看了tcpClient.Connect方法的MSDN,它声明它需要(字符串IPaddress,Int32)作为参数,所以我没有看到为什么从文本框传递字符串失败。
下面是该程序的该部分的代码片段:
int i = Convert.ToInt32(Port.Text);
String strIP = IP.Text;
using (TcpClient tcpClient = new TcpClient())
{
try
{
tcpClient.Connect(strIP, i);
MessageBox.Show("port Open", "Port Status", MessageBoxButtons.OK);
}
catch (Exception)
{
MessageBox.Show("Port Closed", "Port Status", MessageBoxButtons.OK);
//Console.WriteLine("Port closed");
}
}
_“它不可避免地失败”_并不是一个有用的问题陈述。请修复你的帖子,以便它包含一个可靠地重现问题的好的[mcve](提示:如果向方法传递字符串值是问题,并且字符串从UI返回就好,那么一个好的[mcve]赢不需要用户界面,只需要字符串),并详细说明了该代码的功能,包括任何错误消息的_exact text_和任何异常的完整堆栈跟踪,以及您希望代码执行的操作。 –
什么是'IP.Text',你确定在将它作为参数发送给连接方法之前有一个值? – CodingYoshi
您可能正在阅读错误的文本框。使用Console.Writeline将IP写入非常的内容。 – jdweng