刚才友人告诉我不行
我就是不想通过Server做中转,只需Server告诉另一台电脑前一台的位置。然后两台电脑就直接连接,我想知道怎么实现它,不好意思,我的网络编程基础不是很好

解决方案 »

  1.   

       在客户端A,当接收到服务器信息(确定把自己的IP和端口送到另外一个客户B)后,A和B启动一个新的线程,用于接收或连接对方。A,B,服务器之间的信息事件自己定了。
    要和第一台机子连,不一定要与第二台断开,前提条件是:端口没有被占用。
       
      

  2.   

    刚才有网友已经向我建议,在连接Server时,同时监听一个端口,并将监听端口发送给Server,由Server再将它的ip和监听端口传给其他的机子。这样做当然可以,但我不知道如果有一台客户机在防火墙后面怎么办?举个例子,A的地址为192.168.0.6(内部地址),监听的端口是2001,与Server连接的端口是3399,防火墙的地址为203.93.168.154。
    那么Server得到的A的位置就是203.93.168.154,连接得端口为50000(防火墙映射3399的端口)。那它可以把地址传给另一台机子C,但C如何才能连到A的2001端口呢?
      

  3.   

    当然行,你想做中转程序。看看这个吧。
    http://www.csdn.net/expert/topicview1.asp
      

  4.   

     是这个。
    http://www.csdn.net/expert/TopicView.asp?id=115709