關於java NIO socket處理粘包 斷包問題

NIO socket是非阻塞的通信模式,與IO阻塞式的通信不一樣點在於NIO的數據要經過channel放到一個緩存池ByteBuffer中,而後再從這個緩存池中讀出數據,而IO的模式是直接從inputstream中read。因此對於NIO,因爲存在緩存池的大小限制和網速的不均勻會形成一次讀的操做放入緩存池中的數據不完整,便造成了斷包問題。同理,若是一次性讀入兩個及兩個以上的數據,則沒法分辨兩個數據
相關文章
相關標籤/搜索