想想qq不就明白了,客户没有固定IP,而服务器有啊,客户先登陆服务器,
将自己的IP先知服务 器,这样,所有客户端不就可以互相知到彼此的IP了!

解决方案 »

  1.   

    或者client在sygate等软件的后面呢?再或者client掉线了呢?你的思路说得太简单了!!!
      

  2.   

    如果在代理后面,那么信息将先发送到代理,再由代理发给client!
    代理会在内部维护一个表,用来记录内部的client的IP!
      

  3.   

    信息会先发到代理,后由代理转发给client;代理会维护一个表,用来
    记录其内部client的IP!
      

  4.   

    to:f-ky 我也在考虑这个问题!!当client突然死机,掉线…………
    你能先讲讲你的思路好吗??
      

  5.   


    客户端连接到服务器时,服务器可以得到客户端的IP。这样它们就可以双向通信了。
    至于你说的Client在代理后面时分两种情况:
    1。如果是用TCP协议,这样就只能由在代理后面的client最先与外面的server连接,然后server得到的其实是代理的IP,在server看来,它其实是与代理在通讯,它根本不知道代理后面是谁,而代理会根据端口映射原理将server发来的信息转发给你的机器,也就是client.
    2.如果是UDP协议,大致相同,只是他们没有建立连接。也应该最先是代理后面的client向外面的server发消息。然后server再向代理发消息有代理转给client。不过由server向代理后的client发消息有个时限问题。
      

  6.   

    先谢谢你,我这儿只考虑tcp协议:楼上说的这些我也知道,这种情况下,上行数据当然是没有问题的,但是下行数据怎么办,用同一条链路么?不要忘了,上行的数据需要server回复确认包的,如果下行数据和回复确认包走同一个socket连接的话