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