Hallo liebe Gemeinde,
aktuell versuche ich mittels Lazarus unter Linux den idHTTPServer in betrieb zu nehmen und scheitere mit der Meldung
Zitat:
EIdSocketError: Socket Error # 98
Address already in use.
Es ist dabei egal welchen Post ich benutze es ist immer die selbe Meldung.
Was kann hier die Ursache sein?
Sollte es etwas geben was von der Art her genau so einfach ist, ich natürlich auch dies versuchen.
Gefunden habe ich im Internet nichts zutreffendes und hier im Forum nur einen Thread mit der Antwort gleich etwas anderes als
Indy zu nutzen. Ich würde aber gerne bei
Indy bleiben. Der Quelltext ist hier recht schmal um den HTTPServer rum (ca 10 Zeilen). Ich muss nur die Parameter über die
URL auslesen und an die RS232 Schnittstelle weiterreichen. Der Aufruf schaut Beispielsweise so aus:
Zitat:
Gelesen werden die drei Paramter und als Rückgabe ein einfacher String gesendet als Erfolgsmeldung.
Delphi-Quellcode:
constructor TMyApplication.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
idHTTPServer1 := TIdHTTPServer.Create(nil);
idHTTPServer1.DefaultPort := 65000;
idHTTPServer1.OnCommandGet := idHTTPServer1CommandGet;
idHTTPServer1.Active := True;
end;
procedure TMyApplication.IdHTTPServer1CommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if ARequestInfo.Document = '/' then
begin
Writeln(ARequestInfo.Params.Text);
AResponseInfo.ContentText := DateTimeToStr(Now);
end;
end;