日期:2014-05-17  浏览次数:21076 次

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

------解决方案--------------------
若client均在 路由之后,则需要中间服务器(不在路由之后) 使用nat(UDP)打洞(大部分路由支持)到中间服务器后,分别交给双方
若有一方不在路由之后,则由另一方先发起打洞

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