VS2019使用SimpleTCP时CS1503编译错误的修复方法
修复SimpleTCP服务器的CS1503编译错误
这个错误太典型了——你完全搞反了server.Start()方法的调用逻辑!咱们来一步步拆解问题:
错误根源
你的代码里这一行:
server.Start(ip).Convert.toInt32(txtPort.Text);
有两个致命问题:
server.Start()方法需要两个参数:IPAddress类型的地址,和int类型的端口,而不是只传IP后去调用返回值的方法。- 类型转换的写法也错了,
Convert.ToInt32()是静态方法(首字母要大写),不能作为某个对象的实例方法来调用。
修复后的基础版本代码
先把端口号转换成合法的整数,再正确传递给Start方法:
private void btnStart_Click(object sender, EventArgs e) { txtStatus.Text += "Service starting ..."; // 解析IP地址 System.Net.IPAddress ip = System.Net.IPAddress.Parse(txtHost.Text); // 转换端口为int类型 int port = Convert.ToInt32(txtPort.Text); // 正确调用Start方法,传入IP和端口两个参数 server.Start(ip, port); }
更安全的容错写法(推荐)
如果用户在txtPort里输入了非数字内容,Convert.ToInt32会直接抛出异常,用int.TryParse做容错处理会让程序更健壮:
private void btnStart_Click(object sender, EventArgs e) { txtStatus.Text += "Service starting ...\r\n"; // 同时验证IP和端口的合法性 if (System.Net.IPAddress.TryParse(txtHost.Text, out System.Net.IPAddress ip) && int.TryParse(txtPort.Text, out int port)) { server.Start(ip, port); txtStatus.Text += "服务启动成功!\r\n"; } else { txtStatus.Text += "IP地址或端口格式错误,请检查输入!\r\n"; } }
内容的提问来源于stack exchange,提问作者Papa Dilbert
相关产品推荐
相关产品推荐

