IDTCPClient接收数据


普通接收的网上一堆就不说了。

在协议没有定义长度的时候TCPClient.ReadBuffer取数据就不是很好取了

奇怪的是TCPClient.InputBuffer.Size在第一次接收数据时总是0

那么根据TCPClient.InputBuffer.Size来取长度也不行。

但是先TCPClient.ReadBuffer 1个字节 TCPClient.InputBuffer.Size就正常了。非常奇怪

DELPHI7下通过

if TCPClient.Connected then
begin
  TCPClient.ReadBuffer(tmpbuf[0], 1);
  move(tmpbuf[0], buf[buflen], 1);
  buflen := buflen + 1;
  ReadLen := TCPClient.InputBuffer.Size;
  if ReadLen > 0 then
  begin
    TCPClient.ReadBuffer(tmpbuf[0], ReadLen);
    move(tmpbuf[0], buf[buflen], ReadLen);
    buflen := buflen + ReadLen;
    CheckData;
  end;
end;


 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM