QQ里面进行文件传送的工作原理是怎么 的?是用TCP还是UDP?
如果用TCP的话,服务器端如何知道用户端的IP
我做了一个文件传输的小软件,局域网内还可以,但Internet上就不行了
请各位大虾指教!

解决方案 »

  1.   

    qq采用的是2种方案结合的 方法
    对都采用2004支持net转换的 用户采用udp但是1个 用户不支持net的话采用tcp
      

  2.   

    其实,qq公司有一个服务端
    我们平时上qq都的连接到qq那边去
    如果你和你的好友都不能直接连接对方时,你们的信息是通过qq那边的服务器转发的 
    如果你想这样实现的话,实际上是TCP的方法来的 
    只有你的服务端安装到一个有外网IP的机器上,就可以了
      

  3.   

    是服务器转发和UDP直连相结合的
    但是QQ的IP地址会记录在服务器中的
      

  4.   

    特别关注
    请问QQ,它在做发送一些比如广告或系统的消息,应该是采用UDP,发送两个人的聊天消息,应该是TCP,在群的消息里,应该采用TCP吧,
    各位GG,不知道我说的对不对?请指教
      

  5.   

    先说一下吧,每次登录的时候系统会记录下登录号码所用的IP地址
    当发送方与接收方中间无代理或防火墙时,系统会通过UDP方式直接从一台机器发到另一台机器(如QQ的传送文件等功能)
    另一种是当双方之间有代理或防火墙时,系统会接收发送方的消息然后发送到接收发的IP
    广告之类的,其实只不过是一个服务器与客户机之间的通信而已,应该是UDP(好像短信群发一样的)
    至于群里的消息,也可能是UDP和TCP结合使用(UDP方式可视为发送发的群发功能,TCP可视为服务器中转)
      

  6.   

    你可以参考linux下的QQ程序,那下面有源代码
      

  7.   

    QQ使用一个端口 两个模式```连接服务器使用TCP模式``  C/S TCP当QQ完成与服务器之间通信得时候 释放端口 发送时用此端口连接客户端 C TO C````还有监听端口  就是客户申请连接时候用得``
      

  8.   

    服务器程序可做成ASP,放在你的网站上。认真看下边的页面也许对你有帮助。注意这两个字段:REMOTE_ADDR、REMOTE_PORT!
    http://www.7long.net/mail/test/test.asp