PC1是局域网1中的一台电脑;
PC2是局域网2中的一台电脑,
问题是怎样用winsck使PC1和PC2通信?
高手帮忙!
(如果PC2是有固定IP地址的PC,是直连的话,
PC1不管是不是处在局域网中,把PC2当作服务器端,PC1作为客户端,是可以互相通信的,这个有实现.)

解决方案 »

  1.   

    两个局域网如何连接?
    路由、网关、DNS
      

  2.   

    两个局域网是由什么来连接的这才是关键。
    如果是交换机直接连接,那程序上直接连接指定IP就可以了。
    如果是Internet连接,可以用VPN,一样可以直接连接过去。
    如果是Internet连接,又没有VPN服务器,可以用P2P技术实现。
    不说清楚方式,很难猜的。
      

  3.   

    直接写一个TCP全双工程序不就可以吗???
      

  4.   

    9楼正解。一般我们说的局域网,是指出口处做了NAT转换,内部的PC没有合法的公网地址,而是通过内部DHCP分配的一个私有IP地址(共有IP和私有IP的具体知识请自行baidu)。那么在这种情况下,两个私有IP地址是绝对无法直接进行TCP连接的。要解决方法一般有以下几种:1、其中一个局域网中在出口NAT设备上做一个IP映射(或者说将这个私有IP设置为DMZ服务器),将内部某台PC的私有IP地址映射为一个公网IP,然后另外一个局域网中的PC就可以通过访问这个公网IP来连接对方。
    2、在公网上另外找一台有公网IP的服务器,两边的PC都连接这台服务器,然后由服务器进行数据转发(这种方法数据传输效率会比较成问题)。另外,如果两台PC都在同一个局域网内,那么直接用私有IP,两台PC之间也是可以直接互相连接的。
      

  5.   

    现在继续
     2.借助一个外网做数据转发  还是需要有一个是外网的  说原理也比较麻烦 我也就不多说了
    原理简单的说 就是外网当了搬运工的作用 比如说 外网的是PC3 他接受PC1数据后 再把数据发给PC2
      只是中间多了一个 PC3    这样说吧  你只要是连接互联网 都是以外网的身份访问的  比如你在网吧  访问的都是以同一个IP身份访问的。
      所以说 不管怎么样 都要处理  2个不同局域网的2台PC是不能直接通信的 除非是同一局域网 那样就没问题了。  
        如果还有不懂的也可以+我QQ 550702953  如果有喜欢编程的 也可以加我交流 (本人菜鸟一只。)
      

  6.   

    UDP打洞比较简单。如果楼主对winsock还比较熟的话我讲一下流程你试试应该就会了
    如果两台机都在内网则必须有一台SERVER在公网,或端口是映射过的
    A,B都用udp向SERVER发信息,SERVER记录下a,b,分别的ip及端口.再将A的信息发给B,b的信息发给A两个就可以直接通讯了.很easy原理是。a,b,虽然在内网但向外网发udp信息时路由会给它的临时端口,SERVER记录下这个临时端口,告诉a,b等于它们之间的通讯就无问题了。