我用API编写了一个Socket通讯程序,
其中侦听服务端在我的机子上(公司有一个外部IP地址,我们机子都通过路由器上网),
连接客户端在internet上另外一台机子上,
现在我启动客户端开始连接服务端,但是我告诉客户端要连接的服务端的IP地址是我内网的IP地址,
客户端根本不知道往哪里连接,查询有关资料,其实我要实现的功能是:
内网服务端启动->转换到在外网侦听某个端口
客户端启动(连接的IP地址改为我机子所在外网IP和端口)->建立连接就像QQ或者其他下载工具一样

解决方案 »

  1.   

    虚拟专用网(VPN)是指在公共网络中建立专用网络,数据通过安全的"加密通道"在公共网络中传播。企业只需要租用本地的数据专线,连接上本地的Internet,各地的机构就可以互相传递信息;同时,企业还可以利用Internet的拨号接入设备,让自己的用户拨号到Internet上,就可以连接进入企业网中。
      

  2.   

    现在我启动客户端开始连接服务端,但是我告诉客户端要连接的服务端的IP地址是我内网的IP地址,
    客户端根本不知道往哪里连接--------------------------------
    这不是挺明白问题的所在的吗?哪有告诉人家内网IP的
      

  3.   

    1.设立中间服务器,所有联接先连接到这个服务器,再在你的IP和外网间建立连接,就是现在的P2P,QQ等EMULE都是这样的
    2 .直接方式,在你的外网IP(防火墙上)做端口映射,这个外面的电脑只是访问你的外网IP,由引自动转到你内网机子也,也就是一个NAT喽
      

  4.   

    用路由器做一个虚拟服务器的端口映射,把你的局域网IP和服务端口设好,客户通过Internet
    访问公司外网IP和你的服务端口,路由器会映射到你的主机和端口上的。我的程序就是这样做的
      

  5.   

    再写一个程序;其中一个socket在Internet公网IP,和一个port上listen ;
    然后再写个socket,用它connect公司内部的服务器;
      

  6.   

    这需要你们的Router支持forwarding,也就是Virtual Server。
    QQ或者其他下载工具是不同的,它们只是客户端可能在内网中。