将String变量传递给tcpClient.Connect

时间:2017-11-04 03:11:05

标签: c#

我正在尝试将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");
                }
            }

1 个答案:

答案 0 :(得分:0)

问题在于,当我在视觉设计器中创建IP文本框时,在文本字段属性设置中引入了一个空白区域。我放了一些消息框来查看传递给Method的值是什么,在调试器模式下运行后,在使用不同的值测试几次后,我终于能够在传递给字符串变量的开头看到空格。方法。我转到文本框属性页面并在属性框中退格,以确保没有空格。在我这样做之后,我能够成功地将IP.text值传递给strIP变量并获取tcpClient.Connect方法以连接到我传递它的IP和端口。