Entwickler-Ecke

Internet / Netzwerk - Socketerror unterbinden?


r4rox - Mo 13.09.10 21:56
Titel: Socketerror unterbinden?
Hallo zusamm ,
habe eine idHttp abfrage von nem phpscript erstellt .. diese ließt mir den inhalt der php datei aus und gibt mir diese wieder (gameserver -> playeranzahl) .
Jetzt habe ich um es "zeitgenäß" zu machen es mit einem Timer verbunden der sich alle paar sekunden refresht.
Doch wenn keine Internetverbindung besteht kriege ich diese Fehlermeldung : socket fehler #1104 ?! oder so ähnlich !

Hab hier schon ein wenig gestöbert und bin auf onerror gestoßen .. leider gibt es diese funktion beim idHTTP nicht zumindest habe ich sie nicht gefunden.

Jetzt meine Frage wenn keine verbindung besteht kann ich die Fehlermdlung irgendwie unterdrücken das nichts ausgegeben wird ?

MFG
raphael


FinnO - Mo 13.09.10 22:00

Moin,


Delphi-Quelltext
1:
2:
3:
4:
5:
try
  idSonstwas.Active := TRUE; 
except
  doSth;
end;


was natürlich dreckig ist. Sinnvoll wäre es, erstmal einige Server anzupingen um zu gucken, ob Internet vorhanden ist.

LG


r4rox - Di 14.09.10 12:00

Hallo zusamm ,

habs versucht allerdings makiert er mir das active rot !


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Label5Click(Sender: TObject);
var
textdata:string;


  begin
  try
 idhttp2.Active := TRUE;
 textdata:=idhttp2.Get('url-hier');
 Label5.caption := textdata ;
 except
  doSth;

  end;


Wäre das so richtig ?
Klappt nämlich irgendwie nicht .

MFG
Raphael


Tilo - Di 14.09.10 12:53

Die Glaskugel fragt:

1. Wo ist idhttp2 deklariert?
2. ist diese Deklaration in dieser Prozedur gültig?
3. hat der Typ von idhttp2 die Eigenschaft Active?
4. ist Active aus aktuellem Kontext eventuell readOnly?
5. Was für eine Fehlermeldung wird ausgegeben?

(hab gerade zuwenig Zucker)


r4rox - Di 14.09.10 13:08

Also :

Standart ( funktioniert)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Label5Click(Sender: TObject);
var
textdata:string;

  begin
 textdata:=idhttp2.Get('url-hier');
 Label5.caption := textdata ;

  end;


idHttp2 ist vorhanden :


Delphi-Quelltext
1:
2:
type
IdHTTP2: TIdHTTP;


Denke die funktion active gibts gar nicht ( zumindest bei mir im script) !

Brauche halt ne lösung dafür das wenn keine verbindung zum internet besteht die fehlermeldung socket fehler nicht auftritt.

Hoffe habe nichts vergessen ?

Lg


Gausi - Di 14.09.10 13:12

Dann lass das Active-Gedöns einfach weg, und nimm nur den (praktisch leeren) try-except-Block drumherum. Ist wirklich nicht die feine englische Art, aber die Indys gehen mit Exceptions auch nicht unbedingt sparsam um. Da darf man die eine oder andere auch mal so unterdrücken, finde ich. ;-)