Socket C/S 内外网有关问题

Socket C/S 内外网问题
用socket做了C/S两端,想服务器端放在A电脑,客户端放在B电脑,互相发数据。

但A和B在不同局域网内。怎么办?

A的情况:在百度搜“IP”,显示一个公网IP,登录路由器管理界面,显示是200.xxx.xxx.xxx这样的ip,在电脑上是192.168.xxx.xxx这样的ip。

B情况:百度搜IP,显示一个公网IP,电脑上是200.xxx.xxx.xxx这样的ip

在B中ping A的公网ip 请求超时。

有啥办法?
------解决方案--------------------
这个是网络的问题。不是VC的问题啊。

你这种情况就是:A在一个子网内,通过NAT访问公网。而B直接在公网中。

如果要A访问B,直接访问即可。
如果要B访问A,则需要在A的路由器上做一下端口映射,B访问A的路由器,而不是A本身。如果A有多层子网,要将每个路由器都做端口转发...

所以,至少有有一个公网的IP,两方才能通信,如果A/B都在各自的子网,就要有一个处于公网的服务器给他们中转消息,就像QQ一样。
------解决方案--------------------
需要有个公网IP作为服务器,或者自己在路由器上做端口映射。
------解决方案--------------------
200.xxx.xxx.xxx应该是公网IP。
你在路由器上做个端口映射,映射出去的端口假如是3000。
B直接连接200.xxx.xxx.xxx:3000即可。
------解决方案--------------------
推荐新手就别在这里折腾了,要么买个云服务器,要么端口映射,在私网,别人不认识你,无法访问。