本帖最后由 VisualEleven 于 2011-02-25 11:48:09 编辑

解决方案 »

  1.   

    我简单的再描述遍,就是我要通过互联网连接某个局域网内的PC的端口,怎么做才能不需要设置该局域网的路由器,而直接与该局域网内的PC通信?
      

  2.   

    http://topic.csdn.net/t/20050730/22/4178932.html其实我的问题和这个网页的问题有点类似。。
      

  3.   

    没做过这些东西,也从来没有研究过.但是我能马上想到的方法,不是你说的路由器映射,而是本地登录平台的本地端口映射.
    比如搜索游戏服务器是通过组播.拿CS讲,那当你建立一个服务器后,登录平台的后台程序收到一个组播信息,然后它通过TCP发到游戏房间中,游戏房间再将这条信息转发给所有连接该房间的其它玩家的登录平台后台,然后这些后台发出组播信息,此时你的CS程序就能显示你局域网的服务器列表了.然后双击进游戏也是一样的道理,只不过是使用TCP来完成登陆平台与房间服务器以及其它玩家的的数据交互.按照我的想法应该是完全行的通的,其实就是做了一个本地数据映射转发器 再 通过房间服务器进行相互的数据交换
      

  4.   

    这个要分情况的,因为局域网上网的方式很多,服务器(此服务器需在公网上)转发也得要局域网中的机子能访问才行,对于通过http代理上网的机子怎么编写客户端穿过代理服务器访问到公网服务器呢!(而且代理还有其他的方式)整个流程用UDPNAT实现,本人在此处停止前进啦!望大侠赐教!
      

  5.   

    给你一个思路 
    任何外网在路由不做端口映射的情况下都不能直接访问内网端口,但内网可以访问外网某端口
    而你两边都是内网,那就需要一个中间人的角色来让这2边内网的信息进行交换,从而达到两边互联
    的效果,其实就是P2P的效果。
    例如你说的对战平台并不是直接让你的局域网访问对方的局域网 而是你局域网访问对战平台的服务器而他也访问了对战平台服务器,你们双方互联是在服务器上进行的互联这样你们才能通行,所以始终要用到中间服务器。 所以你做的程序必须是一个服务端一个客户端 而你所要解决的问题就是把服务端放在公网上让局域网的客户端去访问服务端的某个端口。这样明白了吧分享给你的朋友吧:人人网新浪微博开心网MSNQQ空间
    对我有帮助
    1回答时间:2011-2-25 00:10 | 我来评论 | 检举 
     
    向TA求助 回答者: 秋天的肖邦 来自团队 电脑知道专家组 | 四级采纳率:23% 擅长领域: 操作系统/系统故障 反病毒 上网帮助 系统软件 网络软件 我觉得这个回答貌似更容易实现。大家有类似问题可参考下~谢谢各位的帮助