普通接收的网上一堆就不说了。
在协议没有定义长度的时候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;