AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Sockets bei D6 sind nicht die gleichen wie bei D7
Thema durchsuchen
Ansicht
Themen-Optionen

Sockets bei D6 sind nicht die gleichen wie bei D7

Ein Thema von Corelgott · begonnen am 28. Aug 2006 · letzter Beitrag vom 28. Aug 2006
Antwort Antwort
Benutzerbild von Corelgott
Corelgott

Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
 
Delphi 2006 Enterprise
 
#1

Sockets bei D6 sind nicht die gleichen wie bei D7

  Alt 28. Aug 2006, 12:40
Hi @ all,

ich habe bei einem meiner Programme einen sehr seltsamen Effekt...
Und zwar ist die Software unter D6 entstanden.
Nun haben wir unsere Umgebung auf D7 protiert. (@ warum D7 und nicht 2005/06? Ist ne lange geschichte... Don't ask ^^)

Das dumme ist nun, das ich wenn ich mein Kommunikations-Test programm starte seltsames verhalten sehe. Wie z.b. das sich auf einmal nur noch ein Client-Socket kommunizieren kann. (In D6 ging es tadellos mit über 20 stk in einer App) Unter D7 kann nur der Client, der sich als erster zum server verbunden hat senden bzw. empfangen, obwohl alle Clients beim server im Log als verbunden gelten.

Wenn ich eine kleine Test-App baue um die Kommunikation zu testen geht es unter D6 tadellos... (eine App; 1 TServerSocket; 2 TClientSocket)
Delphi kann die in D6 komplett sauber unterscheiden und funzt wunderbar (** speicheradressen verglichen)
Genau die Gleiche App unter d7 schmeisst exceptions noch und nöcher, dass der Port nur einmal geöffnet werden kann

Interressanter weise musste ich insgesammt feststellen, dass:
Die Komponente, die ich unter D6 genutzt habe (Kompo zur Runtime erstellt) unter D7 nicht mehr als Kompo registiert ist.
Wenn ich habe die Unit per Hand in die uses schreibe, kann ich meine App wunderbar kompilieren (verständlich, da ich die kompos ja eb zur laufzeig erstelle)

Ich vermute nun, dass die Unit ScktComp sich bei D6 und D7 unterscheidet und nicht abwärtskompatibel ist vom verhalten her.

Des weiteren scheinen die Komponenten TServerSocket und TClientSocket bei D7 herrausgenommen bzw. Durch neue Komponenten ersetzt worden zu sein.

Kann jemand von euch das bestätigen? Kenn jemand eine Lösung für das problem? Ich würde ungern die komplette Kommunikation neu schreiben müssen, weil D7 da nur das neuere kann...

Vielen dank im Voraus

cya
Corelgott
wer Rächtschraibfehler findet daaf sie behalten...
  Mit Zitat antworten Zitat
Benutzerbild von Corelgott
Corelgott

Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Sockets bei D6 sind nicht die gleichen wie bei D7

  Alt 28. Aug 2006, 13:03
ok mal ein update in eigener sache...

anscheinend ist es eher ein problem, dass die sockets zur laufzeit erstellt werden.

Dieses Problem habe ich vermutlich vorher nicht gehabt, da ich den socket selbst in einer Komponente eingesetzt habe...

Also folgender Fall:

Eine D6-App

1 TServerSocket zur Laufzeit; Port 123
2 TClientSocket zur Laufzeit; Port 123

Bei TClient.Active := true kommt eine Exception

1 TServerSocket zur Entwurfszeit; Port 124
2 TCleintSocket zur Entwurfszeit; Port 124

Beim TClient.Active := true ist alles in bester Ordnung und die Sockets verhalten sich so wie ich mir das wünschen...

??

Vorschläge?

thx im Voraus

cya
Corelgott
wer Rächtschraibfehler findet daaf sie behalten...
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Sockets bei D6 sind nicht die gleichen wie bei D7

  Alt 28. Aug 2006, 13:05
Hast du schon mal überprüft, ob der Port 123 überhaupt frei ist ??
Oliver Hanappi
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Sockets bei D6 sind nicht die gleichen wie bei D7

  Alt 28. Aug 2006, 13:17
Das die Sockets sei D7 nicht mehr in der Komponentenpalette sind ist bekannt. Das Package ist in D7 jedoch noch vorhanden so das du es nur installieren brauchst.
Hingegen vieler Vermutungen sind die Sockets aber nicht depricated sondern vermutlich von der Palette verschwunden weil die Indy-Komponenten dazu gekommen sind. Selbst bei D2006 sind die Sockets noch vorhanden und nicht als depricated markiert.

Dein Vergleich mit dem erzeugen zur Laufzeit hingegen dem zur Designzeit hinkt gewaltig. Wenn dann solltest du in beiden fällen den gleichen Port nutzen. Hast du ein eigenes Protokoll geschrieben oder verwendest du das NTP auf dem Port 123? Wenn du ein eigenes Protokoll hast nimm einen Port der nicht für andere Dienste reserviert ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Corelgott
Corelgott

Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Sockets bei D6 sind nicht die gleichen wie bei D7

  Alt 28. Aug 2006, 13:27
hi
in bezug auf port 123 war nur ein bsp...
Normalerweise wird port 900 bzw. 901 benutzt... und ja die sind frei... (thx ^^)

Hmm wieso hinkt mein test mit runtime & designtime? selbst wenn ich die ports wechsle habe ich damit probleme..
Es gibt btw. auch probleme wenn ich nur einen der beiden server nutzen und alle 4 Clients daruf verbinden lasse.

In welchem pack sind die Socket-Komopos unter D7? Hast du da ne idee? ich habe eben schon mal geschaut, aber die Register-Routine für die Kompos nicht gefunden... weiss du das aus dem Ärmel?

cya
Corelgott
wer Rächtschraibfehler findet daaf sie behalten...
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#6

Re: Sockets bei D6 sind nicht die gleichen wie bei D7

  Alt 28. Aug 2006, 13:33
Ein gewisser PierreB hat dazu hier eine kleine Anleitung geschrieben, in deinem Fall (Delphi 7) musst du aber die "dclsockets70.bpl" auswählen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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