对方用一个send发出来的内容,我方用receive可能收两次吗?(size足够大)
如果可能,怎么判别是一个send发的?

解决方案 »

  1.   

    收两次的意思是,分成两部分收下来,可能吗?size足够大
      

  2.   

    如果是TCP的话,当然是可能的,并且根本不可能知道是同一次发送的,这就是所谓的TCP的粘包问题了。
      

  3.   

    那不就很麻烦,通常tcp对话,一个send一个receive,如果前一次来回该收的内容没收完,到了下一个来回中收到了,那不就乱了。
    通常高手是怎么处理这个问题的?
      

  4.   

    雖然可能會分成幾部分收下來,可是TCP可以保證順序不會亂掉吧,不能在SEND方發完後發送一個標志來提示嗎?
      

  5.   

    同意leon7909,TCP保证数据报的完整性,也许要多次recieve才能得到完整的数据,不过数据不会乱的。还是有一个特殊的标志表示包结束比较好