Não sei, apenas debugando vc poderá encontrar o erro.
Como te disse, teste via troca de arquivos e vc verá no arquivo SAINFE.TXT a resposta que deveria receber via sockets.
Eu uso da seguinte forma no Lazarus e funciona corretamente:
fsSock.SetSendTimeout(200);
fsSock.SendString('NFe.SetAmbiente('+IntToStr(pAmbiente)+')'+ CRLF + '.' + CRLF);
Resposta := AnsiToUtf8(fsSock.RecvTerminated(500, #3));
if Resposta = '' then
begin
RespByte := 0;
while (RespByte 3) and (ModalResult mrCancel) do
begin
RespByte := fsSock.RecvByte(10);
Resposta := Resposta + chr(RespByte);
Application.ProcessMessages;
end;
Resposta := Trim(AnsiToUtf8(Resposta));
end;
[/code]