我使用Indy TCPClient组件在Delphi XE4中创建了一个程序,通过自定义端口将一些二进制数据发送到ESP8266模块,并读取二进制字节的响应。问题是第一个响应字节丢失了。 (通常2个字节丢失)。 ESP8266程序没有问题。这是我的Delphi代码:
var
b: array [0..2060] of Byte;
k: Integer;
s: String;
begin
...
s := '';
if (not TcpCl.Connected) then TcpCl.Connect;
if (TcpCl.Connected) then
begin
TcpCl.IOHandler.RecvBufferSize := 100;
for k := 0 to z - 1 do
TcpCl.IOHandler.Write(b[k]);
s := '';
for k := 0 to 12 do
s := s + IntToHex(TcpCl.IOHandler.ReadByte, 2);
DataMem.Text := s;
TcpCl.Disconnect;
end;
end;