Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
Servus Leutz ich finde euer Board UND eure Seite einfach super ! deswegen dachte ich mir (<- lol .. "deswegen") , dass ich gleich mal mein Problem in das Board (und hoffentlich gute Hände B) ) gebe ..
mein Proggi is dazu da , um 1. angeforderte Daten zu versenden und 2. ChatNachrichten zu senden und empfangen .. soweit so gut .. relativ einfacher aufbau ..
nur , wenn ich mit dem Clienten zum Server connecte (wie logisch) , freezed mir mein Client .. wenn/falls er mal nicht freezed , klingt komisch , is aber so , und ich schick ne Nachricht zum/vom Server , meint der Server , dass der Client disconnected ist und gleichzeitig freezed mein Client
sogesehen müsste der Debugger mir ja nen Fehler beim Compilieren melden .. macht er aber net :angry:
also: keine Fehlermeldung des Debugers und trotzdem schmiert mein Client ab ...
PS: den Source des Clients uind des Servers bin ich schon etliche Male durchgegangen und hab ihn sogar mal neu geschrieben ..
*verzweifelt guck* Bitte helft mir !
THX 4 reply
Bis denn CU
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
Sorry .. Upload vergessen ..
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
Ich hab jetze keine Zeit mir den Code anzusehen... Ich schreib jetzt einfach mal schnell wie ich es mache. Der Server bekommt das TServerSocket Element. Der Client das TClientSocket Element. Bei beiden den selben Port einstellen(>1000). Beim Client Socket als Host die IP des Servers eingeben. Den Server auf Deaktivert stellen. Beim start des Servers die Eigenschaft 'active' auf True setzen. Beim Clienten einfach nen Button machen und da rein 'ClientSocket.Open' (ich glaub das hieß so ) So funktioniert es immer. Und wenn nicht dann stimmt was grundlegend nicht...
Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
Moin Leutz
1. ich verwende die INDY-Komponenten und NICHT die "normalen" Sockets , da .. 2. ich Delphi 7 ENTERPRICE verwende und da die Sockets durch die INDYs ersetz haben 3.ich meinen Source ,Server UND Client, schon über 3 mal durchgesehen habe .. 4.es OHNE den Timer hinhaut , außer der empfang der Nachrichten mit dem Client , den ich aber brauche
PS: bitte lest euch die Beiträge inc, der Überschriften GENAU durch ..
Bis denn CU
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
:rolleyes: ich hab zwar mit den Indy TCP/IP Indy Komponeten noch nicht gearbeitet aber ich schau mir den Code nachher mal an. Ich versuche immer so weit es geht auf die Indy Komponenten zu verzichten...
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Zitat:
2. ich Delphi 7 ENTERPRICE verwende und da die Sockets durch die INDYs ersetz haben
Stimmt nicht...die den Komponenten zugrundeliegenden Klassen sind immer noch da, und haben die gleiche Funktionalität wie ihre Pendants aus älteren Delphiversionen.Du kannst zwar die Komponenten nicht mehr verwenden, aber in der Unit ScktComp findest du immernoch die gutbewährten Klassen TServerSocket und TClientSocket, deren Funktionalität genau denen aus Vorgängerversionen entspricht. Der Nachteil ist halt das du aufgrund der Tatsache das die Komponenten in der Form nicht mehr, Ereignisse wie OnClientRead selbst auswerten musst, was allerdings sehr einfach ist.Ich nutz übrigens auch Delphi7 und mache genau dies in NapalmBomber3D, nämlich diese Sockets (wie unter D6 und älter) über diese Unit anzusprechen...ist weniger kompliziert als die Indy-Kompos, und für nicht zu komplexe Anwendungen auch weitaus leichter zu nutzen!
Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
THX für eure Antworten .. auch wenn sie mich net weiter gebracht haben ..
Eigentlich könnte ich ja mit den "normalen" KOmpos arbeiten , nur da ich jetzt schon einge Wochen mit den INDYs arbeite und irgendwie zu faul bin , die normalen durchzugehen und ein Paar Kumpels und ich ein MMORPG proggen wollen (über 100 gleichzeitige Spieler) wären die INDYs vorzuziehen ...
wenn du mir erklärst , wie ich die normalen in mein Prog einbinde und an die Ereignisse rannkomm (wie im Objektinspekor -> Ereignisse) , bin ich vielleicht dazu breit umzusteigen ..
nur wäre es mir doch irgendwie lieber , wenn mir jemand "direkt" auf meine Frage ne Antwort geben kann
Bis denn CU
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
Ich hab mir mal deinen Code angesehen. Ich kanns bei mir leider nicht Kompilieren(hab nur Delphi 6). Deshalb kann ich dir da nicht viel helfen. Aber wenn ich mir das alles mit den Indy Komponenten so ansehe dann solltest du vielleicht wirklich nur die normalen Sockets verwenden...
Registriert: So Dez 29, 2002 10:37 Beiträge: 251 Wohnort: Ulm
hmm, komisch, bei mir freezed nix! ich hab als erstes mal den TCP-Client von deinem server geschmissen, den brauchste da nicht.. das senden von nachrichten an die user kannste über deinen tcp-server machen.. hmm. komisch. bei mir sagt er nur nach dem senden einer nachricht vom client aus, 'connection closes gracefully' oder so..
Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
Servus Leutz THX , dass ihr euch Zeit genommen habt , meine Source durchzusehen
@rochus 1.welches Betriebssystem hast du ?? 2.das ich den Client auf dem Server eigentlich net brauch weis ich .. nur dachte ich mir , nachdem mein Proggi das Freezen begann , mal auszuprobieren , ob es vielleicht (zwar eher unwarscheinlich) am Server , wenn er Texte sendet liegt .. man weis ja nie , was Mircosoft so zusammenprogrammiert .. 3.'connection closes gracefully' bedeutet doch , dass der Client "richtig" disconnected ist , oder ?? nur soll mein Client (wenn er connected ist) connected bleiben , bis a) er disconnected (wie logisch ..) oder B) er gekickt wird bzw der Server abgeschalten wird
und bei mir freezed es trotzdem .. liegt es vielleicht an WinME !? Bald (Übermorgen) hau ich mir WinXP Prof wieder drauf (obwohl mich das XP ankotzt .. aber NUR wegen dem SoftRaid mit 2 SCSI-Platten mit je 10K RPM .. Jeehhaa)
THX @ all 4 Help
Bis denn CU
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
Sevus leutz zum disconnecten (bei rocus): da du ja Win2K , das ja den angeblich absturzsicheren Kern besitzt .. , hast , kann das Prog bei dir ja net Freezen sondern sogesehen ja NUR disconnecten ..
aber ich hab ja im SourceCode ÜBERHAUPTNIX , außer bei ButtonClick, stehen , dass der Client disconnecten soll .. also: er/es hat keine Anweisung zum Disconnecten , aber da bei Win2K ja kein programm abschmieren/freezen können , gibt WIndows (bei Freezen) die Anweisung , dass der Client disconnected ..
und genau das ist MEIN Problem .. ich weis NICHT warum der Client Freezed , aber er tut es einfach .. bzw wie in rochus fall : dass der Client "einfach so aus Spass" disconnected ...
if not UserIsHelped then begin RunThroughAWall; end;
Bis denn CU
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Dei Tatsache das dein Client unaufgefordert disconnected, liegt wohl daran das er ne zeitlang keine Daten sendet und er so bei Überschreiten des Timeouts automatisch die Verbindung trennt. Eine Möglichkeit das zu umgehen, wäre permanent irgendwelche leeren Pakete su senden, um dem Server bzw. Client erkennen zu lassen, das die Verbindung noch besteht und nicht getrennt werden soll.
Registriert: Do Jul 03, 2003 15:22 Beiträge: 14 Wohnort: Mittelfranken
@rochus aja gut .. nur kann der Client im INDY-Demo KEINE Daten/Texte empfangen .. das weis ich , weil ich mir erstmal die ganzen Demos angeguckt hab ..
@SoS 1.darf man(ich dich so abkürzen ?? 2.wie kann man einfach Leere Pakete schicken ?? oder wie kann man dem Client einfach nur sagen , dass er CONNECTED bleiben soll ??
darum wurden die INDYs früher von den Amis abgestochen .. LOL
Bis denn CU
_________________ Hilfe ! eines Morgens wachte ich auf .. und bemerkte , dass ich ein Noob bin ..<br>2 Stunden später fiel mir ein .. nur im Programmieren <br>Sind wir nicht alle ein bischen Nooby ??
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.