什么叫撞包,出现撞包的原因,怎么解决(从软件有可能解决吗?)

解决方案 »

  1.   

    就是多个UDP 客户端 向 一个UDP服务器发送数据(一个端口接收)一分钟大约有10万条数据
    这样如果在同一个时间(1纳秒)内服务器 要收多条数据,引起撞包,导致数据接收失败。
      

  2.   

    好像不好办...
    如果是tcp还好办
    upd好像没有办法
      

  3.   

    叫粘包,不叫撞包一般解决粘包的处理是定义一协议,像HTTP,FTP,它们的包都是定义好的,包头,包尾。
    这样即使收到两个包,解析一下包头和包尾就可区分出一个包来。
    你这个类似吧你没定义协议层只能怪前期工作没做好。
      

  4.   

    ERR0RC0DE()  你解释不对 
    粘包是几个包一次收到 然后拆开就可以。粘包的数据是可以收到的
    但是撞包数据是收不到的 引起丢失
      

  5.   

    ERR0RC0DE()  你把问题想得简单了 粘包是很容易解决的
      

  6.   

    你的数据包会出现:发送包A,B,结果收到的数据包是:A_1, B_1, B_2这样的可能?A_1即为A包的某一部分如果是这样,可能由于数据包大,需要将数据包拆分,分解成N个部分,每部分最好少于MTU - X
    X是多少我忘了,你上网查查。然后N个部分分别发送,再由接收方组合。
    如果第N个部分未收到,则由发送方再发,直到接收方返回响应包。一般是这样做确认应答机制,再使用滑行窗口机制,这样效率基本不会很慢。
    如果麻烦,就用TCP了。