所以,我有一个TClientSocket,它必须在一个OnRead事件中接收超过10KB的数据.但是当事件被触发时,它只获得8KB的数据,然后事件再次触发其余的数据.
为什么会这样?
解决方法
因为TCP是流协议,而不是基于消息的协议.您必须接收已发送的任何内容,将其合并到一个数据流,然后根据使用的协议解析流.
所以,我有一个TClientSocket,它必须在一个OnRead事件中接收超过10KB的数据.但是当事件被触发时,它只获得8KB的数据,然后事件再次触发其余的数据. 为什么会这样? 解决方法 因为TCP是流协议,而不是基于消息的协议.您必须接收已发送的任何内容,将其合并到一个
所以,我有一个TClientSocket,它必须在一个OnRead事件中接收超过10KB的数据.但是当事件被触发时,它只获得8KB的数据,然后事件再次触发其余的数据.
为什么会这样?
因为TCP是流协议,而不是基于消息的协议.您必须接收已发送的任何内容,将其合并到一个数据流,然后根据使用的协议解析流.