Forum: Netzwerke
by Garfield,
16. Jan 2011
Doch nicht ganz. Das letzte Zeichen fehlt.
Da muss dann noch die function TIdIOHandler.ReadLn(ATerminator: string; ATimeout: Integer = IdTimeoutDefault; AMaxLineLength: Integer = -1): string; ein wenig angepasst werden.
// Extract actual data
Result := FInputBuffer.Extract(LTermPos + Length(ATerminator));
if (ATerminator = LF) and (LTermPos > 0) then begin
{
* Wenn beim...
Forum: Netzwerke
by Garfield,
16. Jan 2011
function TIdBuffer.IndexOf(const ABytes: TIdBytes; AStartPos: Integer): Integer;
var
i, j, LEnd, BytesLen: Integer;
LFound: Boolean;
begin
Result := -1;
// Dont search if it empty
if Size > 0 then begin
EIdException.IfTrue(Length(ABytes) = 0, RSBufferMissingTerminator);
EIdException.IfNotInRange(AStartPos, 0, Size - 1, RSBufferInvalidStartPos);
Forum: Netzwerke
by Garfield,
16. Jan 2011
Auf der Suche nach der Fehlermeldung fand ich diese Lösung: Die gesendete und empfangene Nachricht enden mit dem selben schließenden Tag. Deshalb funktioniert dies:
procedure TForm1.Button2Click(Sender: TObject);
var
TcpClient : TIdTcpClient;
begin
Memo1.Clear;
TcpClient := TIdTcpClient.Create(nil);
TcpClient.Host := 'fritz.box';
TcpClient.Port := 49000;
Forum: Netzwerke
by Garfield,
15. Jan 2011
Mit zwei kleinen Einfügungen geht es. Allerdings fehlt wieder die letzte Zeile mit den zwei schließenden Tags. Nach einer Weile gibt es eine Meldung "Connection Closed Gracefully.". Wenn man einen Fehler in das Script einbaut, bekommt man einen Fehler mit der gesamten Meldung:HTTP/1.1 500 Internal Server Error
DATE: Sat, 15 Jan 2011 23:17:24 GMT
SERVER: FRITZ!Box Fon WLAN 7320 UPnP/1.0 AVM...
Forum: Netzwerke
by Garfield,
15. Jan 2011
Einen IdHTTPClient finde ich nicht, nur den IdHTTPseerver. :?:
Damit kann ich leider nichts anfangen. :oops:
Forum: Netzwerke
by Garfield,
15. Jan 2011
Mit TIdTcpClient kommt man auch nicht weiter.
procedure TForm1.Button2Click(Sender: TObject);
var
TcpClient : TIdTcpClient;
temp : String;
count : Integer;
begin
Memo1.Clear;
Forum: Netzwerke
by Garfield,
15. Jan 2011
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. :(
Kann sehr gut sein.
Wenn ich die Antwort zeilenweise bis zur zweiten Leerzeile lese:
procedure TForm1.Button2Click(Sender: TObject);
var
TcpClient1 : TTcpClient;
temp : String;