日期:2014-05-18  浏览次数:21113 次

关于TCPListener在远程服务器上监听的问题,高分求解!
本机安装了动态域名解析,
IPAddress ip1 = Dns.GetHostAddresses(txthost.Text.Trim())[0];
_port1=8667;
路由器也做了端口映射,把8667端口映射到本机上了

然后启用监听

 private void Listen1()
  {
  tcpl1 = new TcpListener(ip1, _port1);
  tcpl1.Start(); //这句报错
  while (true)
  {


错误为:在其上下文中,该请求的地址无效

换本地的地址的话没问题

不过因为是动态域名,不可能定死一个IP地址

我就是想客户端远程连接到服务器端,从服务器端返回一个字符串。

局域网没问题,关键是远程连接就报这个错了!

问题很急,高分求解了!

------解决方案--------------------
C# code

IPAddress ip1 = Dns.GetHostAddresses(txthost.Text.Trim())[0];   //不知道你的txthost.text里面填写的是ip还是路由器主机名

------解决方案--------------------
ding
------解决方案--------------------
这个不太懂 帮顶
------解决方案--------------------
不懂 帮顶
------解决方案--------------------
只能帮顶。。。。
------解决方案--------------------
我的也是一个动态域名,首先将域名换成ip再做.
------解决方案--------------------
txthost.Text.Trim()

一定要是动态域名地址

如果动态域名是转发机制那样,你是得不到实际地址的。

你PING一下你的动态域名,看看得到的IP是不是你的外网IP。如果是,那无转发机制,如果不是那就是转发的。

把代码改成不计算IP,直接输入IP看看,就可以知道是不是路由设置的问题。再来讨论。