我正在尝试将telnet到用户定义的IP和端口的功能添加到我当前正在处理的程序中。我从网站上的先前问题获得了基本代码片段。我遇到的问题是我无法将文本字段传递给tcpClient.Connect方法的参数。如果我在参数字段中对IP地址进行硬编码,则代码可以工作,但如果我尝试传递字符串变量,则tcpClient.Connect不起作用,它会显示catch(异常)MessageBox,说明连接尝试失败。
我查看了MSDN中的tcpClient.Connect方法,并指出它需要(字符串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");
}
}
答案 0 :(得分:0)
问题在于,当我在视觉设计器中创建IP文本框时,在文本字段属性设置中引入了一个空白区域。我放了一些消息框来查看传递给Method的值是什么,在调试器模式下运行后,在使用不同的值测试几次后,我终于能够在传递给字符串变量的开头看到空格。方法。我转到文本框属性页面并在属性框中退格,以确保没有空格。在我这样做之后,我能够成功地将IP.text值传递给strIP变量并获取tcpClient.Connect方法以连接到我传递它的IP和端口。