请教关于不同局域网TCP通讯的问题

mdejtod 2015-02-06 05:11:11
之前写过TCP通讯,都是基于同一局域网内的。
两台PC,A和B,分别处于不同的局域网中,均通过路由器上网,假设A作为服务端,B作为客户端
要如何设置端口映射?网上搜了一下,大多数意见表示,
1.PC A 只能是公网,也就是直接使用ADSL拨号上网,再映射端口,PC B 才能连接到A
2.PC A 申请运营商的静态IP,PC B则可直接连接到A,不需要端口映射
但是如果A和B都是在局域网中,要如何实现,仅仅是在A的路由器上映射端口,B是不是无法发起连接和正常通讯?
...全文
744 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdejtod 2015-02-14
  • 打赏
  • 举报
回复
谢谢各位热心回答,决定使用静态ip来实现
lyhoo163 2015-02-11
  • 打赏
  • 举报
回复
TCP协议穿透NAT,目前只能研究。实际使用有难度。问题不少。 还是老老实实选择一方案,实践吧。
  • 打赏
  • 举报
回复
http://www.cnblogs.com/regedit/articles/829725.html
  • 打赏
  • 举报
回复
也就是NAT穿透,或叫NAT打洞
  • 打赏
  • 举报
回复
这个问题涉及到局域网穿透。 关于这方面的文章网上很多。
  • 打赏
  • 举报
回复
引用 6 楼 mdejtod 的回复:
谢谢两位的回答,DelphiGuy 所说的 A的路由器的WAN口获得的是否公网IP,这个如何判断?或者是否可更改?
私有IP地址: 10.* 192.168.* 169.254.* 172.16.* ~ 172.31.* 除了这些范围的都是公网IP。
不得闲 2015-02-09
  • 打赏
  • 举报
回复
映射端口不安全,建议还是用VPN这类的硬件比较好一点。如果要节省,用花生壳也行
lyhoo163 2015-02-09
  • 打赏
  • 举报
回复
静态的IP,比较贵的。 如果客户的外网速度可以的话。而且客户端不太多的话,通过花生壳,一定使用交费的(不能使用免费的)。是可以胜任的。
FlashDance 2015-02-09
  • 打赏
  • 举报
回复
引用 11 楼 mdejtod 的回复:
谢谢各位,还是叫客户申请静态ip比较省事些,现在不确定的就是,是否静态ip一定可行 服务端:静态ip,adsl直接拨号上网 客户端:普通宽带,使用路由器组建的局域网中的电脑 这种情况下,客户端能否跟服务端使用tcp正常通讯?
当然可以,服务端暴露在路由外(或直连公网)即可,效果参考任意三方程序,如:QQ、旺旺等。 也可以租用虚拟服务器。
mdejtod 2015-02-09
  • 打赏
  • 举报
回复
谢谢各位,还是叫客户申请静态ip比较省事些,现在不确定的就是,是否静态ip一定可行 服务端:静态ip,adsl直接拨号上网 客户端:普通宽带,使用路由器组建的局域网中的电脑 这种情况下,客户端能否跟服务端使用tcp正常通讯?
lyhoo163 2015-02-08
  • 打赏
  • 举报
回复
只有公司网络使用数据服务器的,才需要独立IP。 一般公司上网不需要独立IP。
lyhoo163 2015-02-07
  • 打赏
  • 举报
回复
一、电脑公网IP直接连接,任何连网电脑可IP连接它。 二、电脑公网IP内(局域网)连接,需要映射端口,任何连网电脑就可IP连接它。 三、电脑公网动态IP内(如家庭用户使用的电信、联想、有线电视网)连接, (1)需要通过花生壳辅助,任何连网电脑才能连接它。 (2)通过设置VPN连接。
lyhoo163 2015-02-07
  • 打赏
  • 举报
回复
问一下网管员,A的路由器是否是独立的IP,即已经交纳独立IP的费用(比较贵)。 一向公司,只是动态IP。
mdejtod 2015-02-07
  • 打赏
  • 举报
回复
谢谢两位的回答,DelphiGuy 所说的 A的路由器的WAN口获得的是否公网IP,这个如何判断?或者是否可更改?
  • 打赏
  • 举报
回复
就我的经验,是可以的,我用一台内网的电脑,使用WAN口IP:映射的端口,成功登录进内网的另一台电脑(windows远程桌面),如果不映射端口则连接失败。
mdejtod 2015-02-06
  • 打赏
  • 举报
回复
谢谢 DelphiGuy 也就是说,在正常情况下,端口映射也可以实现两个不同局域网的机器进行TCP通讯? 另外就是使用花生壳和申请静态IP了?
  • 打赏
  • 举报
回复
引用 楼主 mdejtod 的回复:
但是如果A和B都是在局域网中,要如何实现,仅仅是在A的路由器上映射端口,B是不是无法发起连接和正常通讯?
这要看A的路由器的WAN口获得的是否公网IP,还要看这IP是否隐藏在防火墙后,即便你获得的是公网IP,但是外围有防火墙做端口过滤(比如用的广电网络),外部TCP、UDP照样连接不进去。 如果一切符合条件的话,你只要在路由器上开放某个端口到内网的某个IP(比如A电脑的),从外部连接路由的WAN口IP:映射的端口就可以连接进你的内网电脑了。为了方便的话,也可以使用花生壳之类的DDNS或者申请一个静态IP给路由器。
mdejtod 2015-02-06
  • 打赏
  • 举报
回复
自己先顶一下,盼高手来答

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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