┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                                                      ┃
┃请大家不要吝啬你们的言词,小弟感激不仅!                ┃
┃见者有份,分不够再加!  拜托各位,谢先!                  ┃
┃                                                      ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃                                                      ┃
┃选这个设计的时候以为很简单,但是做的时候才知道困难重重┃
┃可能是小弟愚昧,望指点迷津,如果有代码那最好不过了!    ┃
┃                                                      ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

解决方案 »

  1.   

    用UPD实现可靠传输???不是太可能吧...
      

  2.   

    咬紧牙关做吧,没别的办法,看书,思考,看MSDN,不过你老师最后应该让你过的,但是如果做不出来
    可能学不到东西
      

  3.   

    用TCP可以不咯?UDP的话 就自己搞个数据结构
    里面加一项 校验码 CRC32然后在收到后检测数据是否正确
    不正确就要求重发直到正确为止不过这样做好麻烦的  没搞过
      

  4.   

    不能用tcp啊,
    还要数据校验,还要超时处理,.........................
    会不会定义tcp的那要样的头结构啊,是不是还要像tcp那样三次握手啊,,,,,,,,,,,,,,好麻烦的啊,
    哪位大哥能贴点代码出来吗
      

  5.   

    TCP的三次握手什么的,就不要了,主要考虑数据发送和接收,判断数据是否出错,然后重传等
      

  6.   

    http://community.csdn.net/Expert/topic/4002/4002859.xml?temp=.9945948
      

  7.   

    构造UDP数据包,在包头上起码要加入包序号,接收方根据序号决定要求是否要求对方重传。
    设计双方握手规则,设定起启序号。如果考虑效率就象TCP设置一个接收窗口,以减少重传。如果不考虑效率,可以设定丢一个包就重传其以后的包,如接收方收到了1、2、4、5、6、7、8,则45678统统扔掉,从3开始重传。
    奇偶校验就不用再弄了,UDP本来就有。推荐源码:TFTP。Windows和Linux下的TFTP源码很多,楼主自己找吧,这是利用UDP提供文件传输的协议,可能符合你的要求。
      

  8.   

    参考RUDP协议
    实际上是在应用层实现发送-应答机制
      

  9.   

    UDP本身是不可靠传输的,可靠传输要考虑至少一个问题:怎么进行确认和超时重传,也就是tcp的分组头部结构里有序号和确认序号的原因。我觉得,可以自己来定义,比如RTP协议,使用的是UDP来传输的,当然它也是不可靠传输,你可以将这个协议自己修改一下,简单地加上分组序号和确认序号,这样在应用层来进行判断;还有一个办法,反正UDP也是封装在IP协义里的,考虑自己定义IP协议,IP的头部不是有选项字段吗,拿几个字节来定义序号,当然,这就不叫基于UDP的可靠传输了,应该叫基于IP的可靠传输;得使用原始套接字编程。
      

  10.   

    多谢各位点化,
    请问 哪里有 TFTP 的源代码啊,想看一下经典程序啊
      

  11.   

    我写了一个UDP传输文件的,是一个DEMO,主要是验证UDP传输文件的可行性。DEMO做好后,初步证明是可以的,由于是DEMO所以在做的时候效率考虑的不是太多,现在只有10K/S~30K/S左右,我想把几个关键地方调整后,效率应该可以还提高不少的。 另外写的时候,只是实现其功能,了解其原理,对软件模式、结构没有做太多考虑,不过了解后可以考虑封装,也挺容易的。 如果你需要留下地址吧,我发给你。
      

  12.   

    [email protected]
     
    看看先,谢谢!也想看下 tftp 的源代码
    不知哪位大哥能发过来啊
      

  13.   

    呵呵, 谢谢帮我顶了,也谢谢大家的关注![email protected]是我的邮箱
      

  14.   

    谢谢  LCBoy 和  flashboy 的 例子,
    哈哈,要搞定了,谢谢大哥大姐们的关照
    下次有问题再问你们了呵