Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#4

AW: TcpClient - Antwort XML unvollständig.

  Alt 15. Jan 2011, 16:10
..., aber der in deinem Beitrag gezeigte Delphi-Code sieht irgendwie falsch aus. ...
Ich habe beim bereinigen versehentlich nach dem SendLn die Zeile mit dem ReceiveLn entfernt. Nach Remy Lebeau kann eigentlich keine vernünftige Antwort zurückkommen.

.. Der TCP-Client beendet dann schon die Verbindung, bevor alles da ist, was da sein sollte. ...
Kann sehr gut sein.

Wenn ich die Antwort zeilenweise bis zur zweiten Leerzeile lese:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  TcpClient1 : TTcpClient;
  temp : String;
  count : Integer;
begin
  Button1.Enabled := False;
  Memo1.Clear;

  TcpClient1 := TTcpClient.Create(nil);
  TcpClient1.RemoteHost := Edit1.Text;
  TcpClient1.RemotePort := Edit2.Text;
  TcpClient1.OnError := TcpError;
  try
    if TcpClient1.Connect
    then begin
      TcpClient1.SendLn(Memo2.Text);
      temp := TcpClient1.Receiveln();
      count := 0;
      while count <= 1
      do begin
        Memo1.Lines.Add(temp);
        temp := TcpClient1.Receiveln;
        if Length(temp) = 0
        then inc(count);
      end;
    end;
  finally
    TcpClient1.Close;
    TcpClient1.Destroy;
  end;

  Button1.Enabled := True;
end;
bekomme ich sofort:
Code:
HTTP/1.1 200 OK
DATE: Sat, 15 Jan 2011 15:05:35 GMT
SERVER: FRITZ!Box Fon WLAN 7320 UPnP/1.0 AVM FRITZ!Box Fon WLAN 7320 (UI) 100.04.88
CONNECTION: keep-alive
CONTENT-LENGTH: 430
CONTENT-TYPE: text/xml; charset="utf-8"
EXT:
und etwa 30 s später die letzte Zeile:
Code:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:GetStatusInfoResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
<NewConnectionStatus>Connected</NewConnectionStatus>
<NewLastConnectionError>ERROR_NONE</NewLastConnectionError>
<NewUptime>47504</NewUptime>
</u:GetStatusInfoResponse>
</s:Body> </s:Envelope>
Angehängte Dateien
Dateityp: 7z Project.7z (177,9 KB, 4x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof

Geändert von Garfield (15. Jan 2011 um 16:19 Uhr)
  Mit Zitat antworten Zitat