TCP远程连接

BXS_null 2018-06-05 04:40:11
tcp远程连接如何把不在同一个局域网内的两台电脑连接起来并且互相通信呢?为啥我把远程IP设置为外网ip的时候就提示我地址无效

如果设置成内网ip地址又可以正常运行并且能够连接,这是为啥呢?能实现把不在同一局域网的两端连接起来吗?
...全文
1952 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
BXS_null 2018-06-13
  • 打赏
  • 举报
回复
引用 19 楼 weixin_40068689 的回复:
[quote=引用 17 楼 yxybreak 的回复:] 你看到的外网ip是你的出口ip,比如说是你路由器的wlan那个口的ip,并不是你本机的ip。你只能listen当前机器的拥有的ip地址,你可以ipconfig /all看一下,你的所有网卡(包括虚拟网卡,回环地址里肯定没有这个ip),所以你listen你的外网ip会报错。 如果你只是想让你的程序能够通过外网被访问到。你listen你本机的内外ip,或者不指定 (即IPAddress.Any)。 然后在你的路由器上做端口映射,或者干脆在路由器上把你的主机设置为nat主机即可。这块和你的程序没有关系。
想问一下,用C#能实现端口映射吗[/quote]现在我的问题是不知道路由器的密码,进不去路由,不借助第三方软件有办法能实现映射吗
BXS_null 2018-06-13
  • 打赏
  • 举报
回复
引用 17 楼 yxybreak 的回复:
你看到的外网ip是你的出口ip,比如说是你路由器的wlan那个口的ip,并不是你本机的ip。你只能listen当前机器的拥有的ip地址,你可以ipconfig /all看一下,你的所有网卡(包括虚拟网卡,回环地址里肯定没有这个ip),所以你listen你的外网ip会报错。 如果你只是想让你的程序能够通过外网被访问到。你listen你本机的内外ip,或者不指定 (即IPAddress.Any)。 然后在你的路由器上做端口映射,或者干脆在路由器上把你的主机设置为nat主机即可。这块和你的程序没有关系。
想问一下,用C#能实现端口映射吗
BXS_null 2018-06-11
  • 打赏
  • 举报
回复
引用 17 楼 yxybreak 的回复:
你看到的外网ip是你的出口ip,比如说是你路由器的wlan那个口的ip,并不是你本机的ip。你只能listen当前机器的拥有的ip地址,你可以ipconfig /all看一下,你的所有网卡(包括虚拟网卡,回环地址里肯定没有这个ip),所以你listen你的外网ip会报错。 如果你只是想让你的程序能够通过外网被访问到。你listen你本机的内外ip,或者不指定 (即IPAddress.Any)。 然后在你的路由器上做端口映射,或者干脆在路由器上把你的主机设置为nat主机即可。这块和你的程序没有关系。
哦哦 懂了,感谢
yxybreak 2018-06-09
  • 打赏
  • 举报
回复
你看到的外网ip是你的出口ip,比如说是你路由器的wlan那个口的ip,并不是你本机的ip。你只能listen当前机器的拥有的ip地址,你可以ipconfig /all看一下,你的所有网卡(包括虚拟网卡,回环地址里肯定没有这个ip),所以你listen你的外网ip会报错。 如果你只是想让你的程序能够通过外网被访问到。你listen你本机的内外ip,或者不指定 (即IPAddress.Any)。 然后在你的路由器上做端口映射,或者干脆在路由器上把你的主机设置为nat主机即可。这块和你的程序没有关系。
X-i-n 2018-06-06
  • 打赏
  • 举报
回复
必须监听本机地址,你不可能跑别人家屋里检查别人的电话响没响。 服务端监听了本机地址以后,这个服务端就是一个“服务”,这台电脑就是“服务器”,需要在防火墙或者路由器上把这台“服务器”的“服务”对外发布出去,这个发布过程和开发没有关系。 另外,PING(icmp)是没有端口的,在做可用性检测的时候:ping 地址用来检测服务器在不在、telnet端口用来检测服务起没起(tcp)。
维秀斯丢丢 2018-06-06
  • 打赏
  • 举报
回复
兄弟,你局域网的机子 ip加端口,有n多台电脑,鬼知道要连哪一台机子,所以要设置路由器 外网默认连你这台电脑,端口映射。
by_封爱 版主 2018-06-06
  • 打赏
  • 举报
回复
因为你的电脑 不是外网电脑.. 不过你可以通过路由器配置一下. 端口映射 或者是dmz主机 都可以实现.
小灰狼 2018-06-06
  • 打赏
  • 举报
回复
不同的网段之间想相互通信,好象要网管在路由器上设置,否则基础网络不通,应用程序想通信基本上没办法,除非你对TCP/IP非常熟,可以进行底层开发,用类似黑客的手段
sinat_35910044 2018-06-06
  • 打赏
  • 举报
回复
在外网都是通过公网IP:端口号来实现对内网的访问,这叫映射。
  • 打赏
  • 举报
回复
引用 9 楼 weixin_40068689 的回复:
引用 1 楼 wanghui0380 的回复:
不太想具体解释了 ,你可以自己百度“NAT映射与穿墙”
客户端跟服务端都要做映射吗?
学习一下 TCP 和 NAT 机制,了解什么叫做“外网IP 和端口”,路由器到底支持什么样的网络地址转换协议规则。
  • 打赏
  • 举报
回复
TCPListener 通常绑定 IPAddress.Any 就可以了,也就是 0.0.0.0。并不不需要你特意指定某个本地网络适配地址。
BXS_null 2018-06-05
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
不太想具体解释了 ,你可以自己百度“NAT映射与穿墙”
客户端跟服务端都要做映射吗?
BXS_null 2018-06-05
  • 打赏
  • 举报
回复
引用 7 楼 Seilboy 的回复:
同一个局域网下多台主机,你在其中一台主机监听了本地端口,不等于你监听了'局域网对外'的端口
我大概就是想实现这个功能
BXS_null 2018-06-05
  • 打赏
  • 举报
回复
既然ping不通那就跟TCP没关系是吧? 现在两眼一抹黑,从哪着手不知道,说简单点就是想实现两个局域网的通信。。。
BXS_null 2018-06-05
  • 打赏
  • 举报
回复
引用 4 楼 qq_17486399 的回复:
引用 3 楼 weixin_40068689 的回复:
[quote=引用 2 楼 qq_17486399 的回复:] 所有的网络通讯都是基于TCP/IP,不同局域网内可以通过外网进行连接,如果说请求地址无效,你ping一下是否能ping通
我本机的外网ip能ping通,但是还是提示该请求地址无效
你ping的时候带上端口如果可以ping通应该不会有问题啊 [/quote]额 尴尬,带上端口ping不通
token不能为空 2018-06-05
  • 打赏
  • 举报
回复
同一个局域网下多台主机,你在其中一台主机监听了本地端口,不等于你监听了'局域网对外'的端口
大鱼> 2018-06-05
  • 打赏
  • 举报
回复
引用 3 楼 weixin_40068689 的回复:
引用 2 楼 qq_17486399 的回复:
所有的网络通讯都是基于TCP/IP,不同局域网内可以通过外网进行连接,如果说请求地址无效,你ping一下是否能ping通
我本机的外网ip能ping通,但是还是提示该请求地址无效
你ping的时候带上端口如果可以ping通应该不会有问题啊
BXS_null 2018-06-05
  • 打赏
  • 举报
回复
引用 2 楼 qq_17486399 的回复:
所有的网络通讯都是基于TCP/IP,不同局域网内可以通过外网进行连接,如果说请求地址无效,你ping一下是否能ping通
我本机的外网ip能ping通,但是还是提示该请求地址无效
wanghui0380 2018-06-05
  • 打赏
  • 举报
回复
不太想具体解释了 ,你可以自己百度“NAT映射与穿墙”
大鱼> 2018-06-05
  • 打赏
  • 举报
回复
所有的网络通讯都是基于TCP/IP,不同局域网内可以通过外网进行连接,如果说请求地址无效,你ping一下是否能ping通

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧