关于粘包,查了一些资料,还是不太清楚。我的理解是,A与B的连接建立后,socket将tcp字节流中的非数据字段进行拆解,并将数据部分放入该连接的输入缓冲区。当有多个A->B的包发来、且B没有对每一条数据及时进行处理时,多条信息就会同时存在于输入缓冲区中,首尾相连。如果数据部分没有分隔符或能够标识数据长度的字段,则很有可能出现无法分割出单条数据边界的情况,从而导致「粘包」。如果确实会出现「粘包」现象,则解决方法是不是应该是:确保接收方会及时处理发送来的数据,使输入缓冲区中同时只会存在一条发送来的数据;保证发送端的数据中有分隔符或能够标识其长度的字段(如HTTP消息)。不知道以上的理解是不是有误?
慕虎7371278
凤凰求蛊
蓝山帝景
随时随地看视频慕课网APP
相关分类