Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi http-server kontaktieren (https://www.delphipraxis.net/29760-http-server-kontaktieren.html)

StanY 14. Sep 2004 13:38


http-server kontaktieren
 
Delphi-Quellcode:
procedure TfrmMain.CheckNews();
begin
  tcpClient.RemoteHost := 'http://www.heise.de';
  tcpClient.RemotePort := '80';
  tcpClient.Open;
end;
Das ist der Quellcode von CheckNews();. Er soll bewirken, dass der tcpClient (TTcpClient) auf heise.de connected.

Hier bekomme ich jedoch SocketError 10035.

Warum?

Wie kann ich die Daten mit TTcpClient abfragen?

Dax 14. Sep 2004 13:40

Re: http-server kontaktieren
 
Wenn du Indy benutzt, musst du zuerst CLient.Connect() aufrufen, wenn du Indy nicht benutzt, rate ich dir, das zu tun. :D

Neuni 14. Sep 2004 13:41

Re: http-server kontaktieren
 
Was soll der denn dann von heise.de bekommen? Oder was willste überhaupt machen mit heise.de?

jfheins 14. Sep 2004 13:42

Re: http-server kontaktieren
 
Es wäre nützlich, nicht nur die Error-Numer anzugeben, sondern auch die Fehlermendung, die da lautet:
Zitat:

Ein nicht blockierender Socketvorgang konnte nicht sofort ausgeführt werden

StanY 14. Sep 2004 13:44

Re: http-server kontaktieren
 
Naja. Ich will zwecks den News-Ticker zu heise connecten.

Wie ich die News-Abrufe, da gibt es ja schon zahlreiche Threads hier. Allerdings sollte ich ja beim Connecten keine Fehler bekommen, da ein Senden von Daten sonst recht schwer ist (;.

@Dax: Ich weiß, dass Indy besser ist, nur muss es ja mit TTcpClient-Komponenten auch gehen - und das könnte ich gerne.

edit:

@jfheins: Wie meinen? Oo

Basilikum 14. Sep 2004 14:39

Re: http-server kontaktieren
 
ich tippe mal auf folgendes:

Delphi-Quellcode:
procedure TfrmMain.CheckNews();
begin
  tcpClient.RemoteHost := 'www.heise.de'; // anstelle 'http://www.heise.de'
  tcpClient.RemotePort := '80';
  tcpClient.Open;
end;

StanY 14. Sep 2004 14:48

Re: http-server kontaktieren
 
@Basilikum: Selber Fehler \:. Das ändert anscheind gar nichts \:. (Btw. als Beispiel in der Hilfe steht auch http://www.site.com)

StanY 15. Sep 2004 16:47

Re: http-server kontaktieren
 
lol,.. so schwer kann das doch nicht sein oder? oO

edit: sry 4 doppelpost *push*

StanY 23. Sep 2004 20:48

Re: http-server kontaktieren
 
tut mir echt leid, wegen dem ganzen Spam (kann meine Beiträge nemmer löschen), aber das kann doch nicht so schwer sein? oO

Ich habs jetzt auch mal mit Indy probiert... Auch das blieb erfolglos. . .

gekmihesg 23. Sep 2004 21:34

Re: http-server kontaktieren
 
nimm doch einfach IdHTTP!
dann kannst du einfach mit idHttp1.get('http://www.heise.de') die seite laden

StanY 24. Sep 2004 19:26

Re: http-server kontaktieren
 
Ja, aber warum?

Es MUSS doch auch mit TTCPClient Komponenten gehen? \:

Ich arbeitete gerne mit diesen... aber wenn niemand für dieses für mich recht banal erscheinendes Problem keine Lösung weiß, werde ich das benutzen. Danke.

XHelp 24. Sep 2004 21:48

Re: http-server kontaktieren
 
Also bei mir klappt es ohne 'http://'. Ansonsten versuche statt .Open :
Delphi-Quellcode:
tcpClient.Active:=true;
vielleicht bringt das was.

StanY 24. Sep 2004 22:18

Re: http-server kontaktieren
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
  QDialogs, QStdCtrls, Sockets, QExtCtrls;

type
  TfrmMain = class(TForm)
    tcpClient: TTcpClient;
    tmrTimer: TTimer;
    procedure tcpClientError(Sender: TObject; SocketError: Integer);
    procedure tcpClientConnect(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure CheckNews();
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.xfm}

procedure TfrmMain.CheckNews;
begin
  tcpClient.RemoteHost := 'http://www.heise.de';
  tcpClient.RemotePort := '80';
  tcpClient.Open;
end;

procedure TfrmMain.tcpClientError(Sender: TObject; SocketError: Integer);
begin
  ShowMessage(IntToStr(SocketError));
end;

procedure TfrmMain.tcpClientConnect(Sender: TObject);
begin
  ShowMessage('connected');
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  CheckNews;
end;

end.
Hier der komplette Quellcode. Ich versuchte es nun schon mit Active := true und Connect statt Open (bei CheckNews). Immernoch derselbe Fehler. ):

edit: tcpClient ist ein TTcpClient und frmMain halt die Form1.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz