用TIdTCPClient和TIdTCPServer连接,在局域网上可以连通,在interent却不行,为什么啊?
我想既然QQ可以通讯,这也应该可以吧!
我设置了要连接的服务器ip地址和端口,还需要哪里有设置吗,还是其他的原因?

解决方案 »

  1.   

    服务器端是直接连internet还是通过路由连的
    如果通过路由还需要在路由器设置里进行端口映射
      

  2.   

    远程ip是通过TIdIPWatch.LocalIP得到服务器的本机ip地址,然后让对方把这个ip地址发给我的,应该不会错
      

  3.   


    可不可以说的详细些,我不太明白啊
    因为我也不知道服务器端是直接连internet还是通过路由连的?
    反正就是我和测试的对方是internet上的两台计算机,可以QQ聊天。
      

  4.   

    在路由器里设一下:
    比如服务器在你这方:那么对方的客户端的IP填写你的外网IP
    然后,通过路由器,将外网IP转向你的机器   //关键之处
    如果你的内网IP为192.168.1.100的话
    以TP LINK路由器为例,在转发规则->虚拟服务器中:加一条
    服务端口:你设的端口
    IP地址:你的内网IP
    协议:TCP或你的协议 
    启用:打钩保存,即可
      

  5.   

    在路由器里设一下: 
    比如服务器在你这方:那么对方的客户端的IP填写你的外网IP 
    然后,通过路由器,将外网IP转向你的机器  //关键之处 
    如果你的内网IP为192.168.1.100的话 
    以TP LINK路由器为例,在转发规则->虚拟服务器中:加一条 
    服务端口:你设的端口 
    IP地址:你的内网IP 
    协议:TCP或你的协议 
    启用:打钩 保存,即可
      

  6.   

    对方填你的外网IP和端口
    关键,你这方要在路由器上设置一下,客户端才能通过你的外网IP到达你的内网地址
      

  7.   


    我还想问下,像QQ之类的聊天工具,只要登上QQ,就可以任意聊天,都不需要知道是内网ip还是外网ip,也不需要单独去设置路由器,这是什么原理?
      

  8.   

    nat穿透
    盒子上好像有这样的例子,比如
    http://www.2ccc.com/article.asp?articleid=3154
    另外,听说QQ是混合使用TCP、UDP