Entwickler-Ecke
Internet / Netzwerk - Socket konnte nicht erstellt werden
ich1506 - Sa 29.04.06 11:23
Titel: Socket konnte nicht erstellt werden
Hallo!
Ich arbeite mit Delphi5 und Win XP schon eine Weile. Nun wollte ich mich etwas mit dem
Stoff Netzwerkprogrammierung auseinanderstetzen. Hab mich informiert...
Wenn ich ein TClientSocket oder TServerSocket auf mein Projekt plaziere ist noch alles ok, doch wenn ich den Socket aktiviere oder mit Active=true starte dann gibt es immer, nicht nur bei selbst erstellten Projekten, eine Fehlermeldung:
Fehler: Socket konnte nicht erstellt werden.
Bisher konnte ich nicht herausfinden woran es liegt. Bitte helft mir!!
ich1506 - Sa 29.04.06 11:39
Danke für die nette Begrüßung!
Tja Code brauch ich für den Fehler eigentlich nicht.
Ich nehm ein neues Projekt mach da mein TClientSocket rauf und ändere folgendes im Objectbrowser:
Active:=true
Adress:='192.168.0.6' (für mein Netzwerk)
Port:=1024 (hab ich aus einem andere Projekt übernommen)
dann F9 zum starten und schon kommt der Fehler... :wink:
Narses - Sa 29.04.06 11:45
Moin!
ich1506 hat folgendes geschrieben: |
| Tja Code brauch ich für den Fehler eigentlich nicht. |
Aber wir schon... ;) Denn wenn du gar nicht merkst, dass du einen Fehler machst, merken wir das ja vielleicht. :D
ich1506 hat folgendes geschrieben: |
Ich nehm ein neues Projekt mach da mein TClientSocket rauf und ändere folgendes im Objectbrowser:
Active:=true
Adress:='192.168.0.6' (für mein Netzwerk)
Port:=1024 (hab ich aus einem andere Projekt übernommen)
dann F9 zum starten und schon kommt der Fehler... :wink: |
Klar, der Client-Socket versucht eine Verbindung aufzubauen, aber da läuft möglicherweise ja gar kein Serverdienst. Du darfst erst dann .Active auf TRUE setzen, wenn du (einigermaßen) sicher bist, dass da auch am anderen Ende ein Serverdienst (TServerSocket) auf eine Verbindung wartet - sonst gibt es völlig zu Recht einen Fehler. ;)
Nochwas: Du solltest für eigene Anwendungen Portnummern (deutlich) über 1024 verwenden, am besten 5-stellige.
cu
Narses
ich1506 - Sa 29.04.06 11:59
Ok, das leuchtet ein, aber das passiert ja auch wenn ich einen Server plaziere und wie im Tut mit
ServerSocket1.Port := 10210; // (zB)
ServerSocket1.Open;
starte.
@narses:
Welchen Portbereich würdes du empfehlen?
Narses - Sa 29.04.06 12:05
Moin!
Pack mal dein (Beispiel-)Projekt (ohne die EXE) in ein ZIP und hier in den Anhang, möchte mal reinsehen, was du da tust. ;)
cu
Narses
Fighter#1 - Sa 29.04.06 12:24
Active:=True
Immer erst dann aktivieren, wenn Port und so angegeben sind, so:
Delphi-Quelltext
1: 2: 3:
| ClientSocket1.Port:=844; ClientSocket1.Host:='ipadresse'; ClientSocket1.active:=True; |
ich1506 - Sa 29.04.06 12:35
Hier mal Mein Project als zip:
Narses - Sa 29.04.06 13:01
Moin!
Bist du sicher, dass es die IP 192.168.0.6 in deinem Netz (aktuell) gibt?
Probier das mal so:
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:
| procedure TForm1.Button1Click(Sender: TObject); begin ServerSocket1.Port := 10201; ServerSocket1.Open; end;
procedure TForm1.FormDestroy(Sender: TObject); begin if ServerSocket1.Active then ServerSocket1.Close; end;
procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Port := 10201; ClientSocket1.Host := 'localhost'; ClientSocket1.Open; end;
procedure TForm1.FormDestroy(Sender: TObject); begin if ClientSocket1.Active then ClientSocket1.Close; end; |
Dann erst das Serverprogramm starten und Button anklicken, dann den Client starten und den Button anklicken. Darf dann so keinen Fehler mehr geben.
Du hattest in deinen Tests die Sockets nicht wieder geschlossen, unschön. ;)
cu
Narses
ich1506 - Sa 29.04.06 13:02
Bitte sagt mir, ob es bei euch läuft, dann weiß ich ob ich nur zu dusselig bin eine Komponente aufs Fenster zu ziehen, oder ob es an etwas Anderem liegt.
Fighter#1 - Sa 29.04.06 13:03
:autsch: :autsch: :autsch:
:mahn: Was hab ich oben geschrieben?? :mahn:
Nicht ClientSocket1.Address sondern .Host
Narses - Sa 29.04.06 13:15
Moin!
ich1506 hat folgendes geschrieben: |
| Bitte sagt mir, ob es bei euch läuft, dann weiß ich ob ich nur zu dusselig bin eine Komponente aufs Fenster zu ziehen, oder ob es an etwas Anderem liegt. |
Klar, wenn ich eine Adresse eingeben, die´s in meinem Netz gibt, läuft´s auch. ;)
cu
Narses
ich1506 - Sa 29.04.06 13:23
Das Problem bleibt!
Selbst wenn ich den Server plaziere kommt der Fehler...
Und 1. das ist meine Ip-Adresse und 2. Wenn ich den Namen hin schreibe, funktioniert es auch nicht. (Im richtigen Feld :!: :wink: )
Wenn mein Projekt bei Narses läuft, dann liegt es wohl an etwas anderem...
:?: :?: :?:
Narses - Sa 29.04.06 13:26
Moin!
Firewall/InternetSecurity/sonstigesGeraffel mal ausgemacht? ;)
cu
Narses
ich1506 - Sa 29.04.06 13:38
Narses hat folgendes geschrieben: |
Firewall/InternetSecurity/sonstigesGeraffel mal ausgemacht? ;)
|
Ja, dürfte eigentlich nichts hinderliches mehr sein...
ich1506 - Sa 29.04.06 14:26
Ersteinmal an alle vielen Dank!
Ich weiß zwar nicht warum es bei mir nicht funktioniert, aber naja...
Ich hab Delphi mal auf einem Win 2000 PC installiert und ... keine Fehlermeldung :shock: *grr*
Dort funktioniert es, nur auf meinem Pc wieder mal nicht. :cry:
Vielen Dank! :)
ich1506 - Sa 01.07.06 20:32
ich hab dann Windows neu installiert und was war?
Alles funktioniert!!! :lol:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!