..., 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>