最近在做一个扩展UDP的服务,使其对应用层提供可靠数据传输服务的程序,主要就是1.如何应对传输过程中的错误?2.如何应对传输过程中可能出现的丢失?,可是一点头绪都没,对JAVA datagramsocket编程了解了,就是不明白怎样在应用层提供可靠数据传输服务,希望做过的能给点提示(最好有些例子代码参考一下)

解决方案 »

  1.   

    深入了解:http://blog.csdn.net/remote_roamer/article/details/6604505
      

  2.   

    首先说一点。
    UDP 本身是不可靠传输。
    当选择UDP时那对于部分的传输丢失,错误应该是可以接受的。如果不能接受那应该选择TCP协议。因为你想要保证UDP传输能与TCP一样可靠,那花费的成本是不可估计的。
      

  3.   

    UDP本身就是不可靠的传输,让它成为可靠的,就必须从协议上有一来一回.
    如果有去无回,则超时重发.
    如果有去有回才认为事务成功.
    接收端需要每个接收的数据有个ID,如果有重复ID,则把不再重复处理数据,只重发应答.
    这个本身是个很复杂的协议.你可以看看能否使用jgroups,这是jboss公司开发的类库.