Entwickler-Ecke

Internet / Netzwerk - SocketError bei Socket-Komponente


cyberbug - So 10.02.08 10:38
Titel: SocketError bei Socket-Komponente
Guten Morgen,
ich nutze Delphi7 PE, und da ich gerne die Socket-Komponente verwenden würde, war ich auf der Suche nach einem geeigneten Tutorial. Da habe ich dann folgendes entdeckt: http://www.delphi-library.de/topic_64438.html .

Mein Programm sieht bis jetzt so aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
unit u_sockettest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp;

type
  TForm1 = class(TForm)
    procedure DynConnectEvent(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
     ClientSocket1: TClientSocket; // dynamisch erzeugter TClientSocket
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Objekt erstellen; Eigentümer ist das Formular -> so wird das Objekt beim 
  // Beenden automatisch mit freigegeben 
  ClientSocket1 := TClientSocket.Create(Form1); 
  // Ereignisse eintragen 
  ClientSocket1.OnConnect := DynConnectEvent; 
  // fertig, ClientSocket dynamisch erstellt 
  ClientSocket1.Port := 8888// Port eintragen 
  ClientSocket1.Active := TRUE; // und aktivieren
end;

// dyn. Ereignismethode 
procedure TForm1.DynConnectEvent(Sender: TObject; Socket: TCustomWinSocket); 
begin 
  ShowMessage('Connect'); 
end;

end.


Wenn ich das Project jedoch kompilieren möchte, taucht folgende Fehlermeldung auf:


Quelltext
1:
2:
3:
4:
5:
6:
7:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Sockettest.exe ist eine Exception der Klasse ESocketError aufgetreten. Meldung: 'Keine Adresse angegeben'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK   Hilfe   
---------------------------


Was habe ich falsch gemacht, oder musss ich noch etwas hinzufügen? Auch habe ich nicht gewusst welchen Port ich nehmen sollte(ich bin halt noch nicht sehr weit in delphi), deshalb habe ich einen Standard HTTP Port genommen.

Ich bedanke mich vorzeitig für Antworten
MFG cyberbug


Fighter#1 - So 10.02.08 12:44

Also, du hast einen ClientSocket. Ein ClientSocket benötigt einen Server an den er sich verbindet.
Was du gemacht hast ist, jetzt mal am beispiel des Handys, du hast gesagt, dass du telfonieren möchtest (Port = .. ) und dann hast du auch schon auf Wählen gedrückt. Blöderweise hast du vergessen zu wählen =).
In deinem Programm fehlt der Host, quasi die Telefonnummer. Ohne die kann keine Verbindung aufgebaut werden.

MfG, Fighter#1


Narses - So 10.02.08 13:30

Moin und :welcome: im Forum!

Schau mal hier [http://www.delphi-library.de/topic_Minimaler+LANInternetChat+mit+TServerTClientSocket_60744.html], da ist das etwas ausführlicher erklärt. ;)

cu
Narses


cyberbug - So 10.02.08 17:43

Also erstmal danke für die Antworten.

@Narses:

von deinem Link bin ich ja auf die Seite gekommen, von der ich den Link angegeben hatte.
Das Problem war bei dem tutorial, dass nachdem ich das zweite Mal ALT+F12 gedrückt hatte eine Fehlermeldung von wegen er weiß nix von TClient Socket oder so.
Aber eig. ist mein Problem jetzt gelöst, weil ich als anhang die datei mit der dynamischen erzeugung gefunden habe.

MFG cyberbug

PS: Das Tutorial ist echt gut :wink: