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

请教关于不同局域网TCP通讯的问题
之前写过TCP通讯,都是基于同一局域网内的。
两台PC,A和B,分别处于不同的局域网中,均通过路由器上网,假设A作为服务端,B作为客户端
要如何设置端口映射?网上搜了一下,大多数意见表示,
1.PC  A 只能是公网,也就是直接使用ADSL拨号上网,再映射端口,PC B 才能连接到A
2.PC  A 申请运营商的静态IP,PC  B则可直接连接到A,不需要端口映射
但是如果A和B都是在局域网中,要如何实现,仅仅是在A的路由器上映射端口,B是不是无法发起连接和正常通讯? 
------解决思路----------------------
映射端口不安全,建议还是用VPN这类的硬件比较好一点。如果要节省,用花生壳也行
------解决思路----------------------
引用:
谢谢各位,还是叫客户申请静态ip比较省事些,现在不确定的就是,是否静态ip一定可行
服务端:静态ip,adsl直接拨号上网
客户端:普通宽带,使用路由器组建的局域网中的电脑
这种情况下,客户端能否跟服务端使用tcp正常通讯?



当然可以,服务端暴露在路由外(或直连公网)即可,效果参考任意三方程序,如:QQ、旺旺等。
也可以租用虚拟服务器。