普通接收的網上一堆就不說了。
在協議沒有定義長度的時候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;