先说明下网络的情况,在公司里有台配有外网地址的服务器端,对方是ADSL拨号登录,而我这里的ADSL是共享上网的,出去的端口都经过NAT转换的,大家都是登录到这台外网的服务器,整个程序是采用UDP协议,在p2p传文件时对方可以传给我文件,而我却不能传文件给对方。传文件策略是假如A要发文件给B,由A先发命令1给B,B收到命令后回一个命令2给A,A开始一段一段读取文件数据发给B,B每收到一段数据都会给A一个确认值。然后A再读取下一段数据发给B(每段读取的数据buffer值是8000),直到文件发完。现在的问题是B回了一个命令2给A要A发数据过来,但就是发不过去,不知道到底是怎么回事?在公司内网上是可以互相传文件的,我想是关于网络的问题还有我不清楚的地方,迷茫中,请各位帮忙分析下呢,谢谢!

解决方案 »

  1.   

    while (沒有解決==true)
    {
       do LZ.拼命調試()
       //此等問題代碼調試是關鍵
    }
      

  2.   

    启禀LZ:
           小弟近日完成公司项目 EM及时通讯,也是 用的UDP.传输文件TCP .目前紧张关注中.....
      

  3.   

    B回了一个命令2给A基于UDP协议的方法,这个命令2是发不到A的.因为要经过路由器这一层.路由器这一层不会给予转发...
    (内网由于不需过路由器..所以可以解析)..至于B怎么通过UDP发送给A..这里讲出来内容很多...用到一个"打洞技术"..
    P2P就是采用这个原理....百度搜一下..P2P与打洞技术..对你会有帮助..