用c#做了一个聊天软件,在公司局域网之内能聊天,但是外网客户安装软件后无法与局域网软件聊天,原因是局域网的电脑运行软件的时候获取的ip地址就是局域网的,如果获取的是公司的网络ip那外网软件怎么跟局域网的电脑软件聊天通信?
请高手分析一下解决方案。
所有分数统统扔掉。 或单聊qq 553723644

解决方案 »

  1.   

    不懂,不过我听说过,通过vpn将外网客户端加到局域网内好像可以实现
      

  2.   

    通过vpn不现实,所有客户需要安装vpn拨号
      

  3.   

    若client均在 路由之后,则需要中间服务器(不在路由之后) 使用nat(UDP)打洞(大部分路由支持)到中间服务器后,分别交给双方
    若有一方不在路由之后,则由另一方先发起打洞若可以实现端口隐射,则无需打洞
      

  4.   

    外网要能使你的消息发送到一台服务器处理的,这台服务器,所有客户端要能连接 或者使用那啥VPNLZ去研究一下端口通讯 
      

  5.   

    IP少的时候,又需要一个局域网下所有的用户都能上网的话就需要用NAT。就是路由器用的是公网IP地址,然后每个端口在影射一个局域网的IP地址。这样当外网访问局域网的某个IP只需要知道局域网ip影射的端口就行了。比如你在局域网里ip是172.168.0.3 对影的端口是:1234。这样只要监听IP:1234这个网络IP的端口就进行及时通信了。NAT的端口和私有IP的对应表好像可以自己设置。
    你应该有个服务器,client端的用户上线的时候就把client端影射的端口发送给外网的服务器。然后做个记录。