![]() |
Problem: Programm zum Datentausch schmiert ab
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Leutz
ich hab da mal n Proggi (Client und Server) geschrieben , das dazu da ist , übers TCP/IP-Protokoll Daten und kleinere nachrichten zu vershicken .. sogesehen ja nix großes , aber der Client schmiert mir ab , wenn ich Texte verschicken will .. da sagt das ServerProg , dass der Client disconnected hat , aber der Client meint , dass er noch connected is .. Im Anhang is die Source .. bitte mal durchguckn und fixen :lol: falls Datein fehlen .. einfach posten .. THX Bis denn CU |
seit ohr noch am grübeln , oder kennt sich niemand damit aus ??
:mrgreen: |
Zitat:
![]() ...:cat:... |
Moin Sakua ..
so viel Source is das garnet .. das größte an der RAR-Datei , sind die komprimierungsschlüssel oder wie man die auch immer nennt .. und dieses Beispiel hab ich mir schon über 3 mal durchgelesen .. aja.. irgendwie schreibst du bei jeder Frage , die in diese Richtung , auch wenns garnix bringt , weil die Userfragen anders lauten , geht disen Link dazu , ohne dich sogesehen mit den problemen der User zu befassen .. Bis denn CU |
Zitat:
...:cat:... |
Hanswurst,
Du kannst nicht ernsthaft erwarten, uns ein Programm vor die Füße werfen zu können, aus dem wir dann die Fehler raussuchen. Das ist nicht Sinn und Zweck dieses Forums. |
Hallo,
ich muss mich ernsthaft Daniel anschliessen. Das erst das Du machen wirst Hanswurst, ist den Debugger anzuschmeissen und den Fehler zu suchen. Wenn Du die Zeile oder gar Prozedur gefunden hast, dann sind es nur noch ein paar Zeilen, die kannst Du ruhig hier posten, vielleicht findet dann jemand den Fehler. Aber Du kannst nciht erwarten das wir hier alle "irgend welche" Projekte komplett durchschauen! Grüsse, Daniel :hi: |
Moin Leutz
also.. das mit dem "vor die Füße werfen" kann ich ja verstehen , dass ihr es so auffast .. ich hab mir meinen Source jtzt schon das 4. Mal durchgelesen .. und der Debugger zeigt mir auch keinen Fehler an .. das ist eben das Problem .. ich weis , es ist schwer nachzuvollziehn , dass ich schreibe , dass nichtmal der Debugger ein Problem findet .. aber irgendwie schmiert mir entweder das ClientProg direkt nach dem Connecten ab , oder wenn ich eine Nachricht zum Server (Chat) schicken will .. warum es direkt nach dem Connecten abschmiert is mir ein Rätsel .. und noch komischer ist , wenn ich vom Client zum Server ne ChatNachricht schicken will , meint der Server , dass der Client Disconnectet , wohlgemerkt "geglückt" Disconnectet hat , aber der Client meint , dass die Verbindung noch besteht .. wenn ich jetzt mit dem Client neu Connecte , spukt es ne Fehlermeldung aus , wo steht : Die Verbindung besteht bereits und schmiert gleich ab .. und wenn ich ChatNachrichten schicke , zeigt sie mir der Server NICHT an , da er ja denkt/weis , dass der Client nichtmehr Verbunden ist .. also irgendwie ne komische Sache ... PS: falls ich Admins/SuperMods/Mods einwenig vergrauelt habe , tut es mir sehr Leid .. aber ich glaub , dass es eher an den über 30 Grad liegt , die in meinem Zimmer herschen .. *sichbeidenAdminsentschuldigt* und *versuchtsichzubessern* Bis denn CU |
Moin Hanswurst,
"das Programm schmiert ab" solltest Du vielleicht mal etwas präziser fassen. Welche Fehlermeldung kommt? Oder verschwindet das Programm einfach? |
Präziser :
du kennst es doch , wenn ein Programm abschmiert , du dann mit nem anderen Prog "drüberziehst" , also verschiebst , dann wir das Prog nurnoch so weis angezeigt .. im Anhang genauer .. damn... ich hab ja grad erst formatiert und noch kein Delphi druf ... aber ich glaub , du weist , von was ich rede ... wenn du z.B in deinem Prog ein Memo-Feld mit Text hast , und es schmiert ab , dann ist das einzige , dass davon angezeigt wird , der Rand des Memos .. genau das selbe is dann auch mit Buttons , Edits usw.. aja .. wenn du dann mit dem Mauszeiger drüberfährst , dann bleibt der , z.B auf nem Memofeld , anstatt ][ disem (halt so ähnlich) , auf dem Coursor , mit dem man die Größe verändernt .. |
Moin Hanswurst,
Zitat:
Unter "abschmieren" verstehe ich nur, dass es abstürzt, also eine Fehlermeldung produziert, oder aber sich unerwartet schliesst. Was Du beschreibst deutet darauf hin, dass das Programm in einer Endlosschleife hängt, in der keine Messages mehr verarbeitet werden. Deshalb zeichnet sich das Fenster nicht mehr neu, und es kommt zu dem beschriebenen Effekt (einfrieren). Falls Du die Indys verwendest: Bei Standardinstallation gibt's auf dem Register Indy Misc die Kompo IdAntiFreeze. Pack die mal auf Dein Formular, und probiers noch einmal. |
Namd Leutz
@ Christian so kann mans auch sehn :) ich probiers gleich morgen mal aus .. hab gestern frisch formatiert und neuinstalliert .. und eine meiner beiden HDDs hat irgendein Problem .. beim Datentransfer scmiert mir der PC halb ab .. hab schon alles probiert .. Kabel ausgetauscht .. an anderen Controller gehängt .. und es bringt nix .. naja .. erst testen , dann tauschen .. is grad mal 1/4 Jahr alt .. Bis denn Cu [Edit=Sakura]Doppelpost gelöscht.[/Edit] |
Liste der Anhänge anzeigen (Anzahl: 2)
Moin Leutz
@Christian Seehase das mit dem Antifreez hab ich ausprobiert .. nur es hat nix gebracht .. ich verwende ja die INDYs .. das einzige , was es gebracht hat , ist , wenn man mit dem Client Connected , dass der Client zwar nicht mehr freezed , also man kann ihn noch verschieben , aber man kann nix mehr eingeben .. und , wenn der Client Connected und gefreezed ist und man den TCPServer des Servers (wie logisch :mrgreen: ) disablet , dass anstatt 2 Meldungen (Verbindung erfolgreich geschlossen(Client) und Zeitüberschreitung der Beendigung des Schließens der Verbindung (oder so ähnlich)(Server)) angezeigt werden , jetzt die beiden angezeigt und noch eine in einer Endlosschleife kommt ... ich hab den Quelltext noch ein bischen bearbeitet .. zwar nicht sehr , aber ein wenig .. Hoffe jemand blickt durch .. :wink: Bis denn CU |
Moin Hanswurst,
Zitat:
Zitat:
Zitat:
|
Liste der Anhänge anzeigen (Anzahl: 2)
Moin Leuzt
@Christian Seehase das mit dem "die INDYs verwend ich ja.." , hab ich nur zur Verdeutlichung geschrieben , da es ja 1.sein könnte , dass ich es noch nicht gepostet hatte und 2. es irgendwie immer Leute gibt (nichts gegen niemand :lol: ,wer den Satz blickt is gut :wink: ) die , zB. das Thema irgendwas mit den INDYs zu tun hat , fragen , ob ich die Kompos aus der Sparte "Internet" oder der INDYs verwende ... WinRAR ist Plicht :mrgreen: nee scmarn .. ich Zips extra für euch .. nee extra für den Chris .. lol Bis denn CU |
habs gezippt ...
oh .. äähhmm ... hatte ich ja shon geschrieben .. sorry bis denn CU |
Liste der Anhänge anzeigen (Anzahl: 1)
mir is grad so aufgefallen , dass ich den überarbeiteten Server net abgespeichert hab ...
sorry im Anhang is die einwenig überarbeitete Ver ... |
Moin Hanswurst,
nachdem ich mal die Formulare etwas zusammengestrichen habe (Du benutzt wahrscheinlich Indy 9.0, ich 8.0 ;-) ), konnte ich den Fehler immer noch nachvollziehen. Der Fehler dürfte in TTimer im ReadLn liegen: Wenn Du hier als zweiten Parameter keinen Timeout angibst, wartet die Funktion unendlich lange => Programm hängt. |
aja gut..
also es liegt am Timer.. und wie kann ich bei dem ReadLn nen TimeOut festlegen ??? (kann heut nix denken --> über 30 Grad im Schatten und kein Hitzefrei :cry: ) da fällt mir so ein: danke für die Analyse :mrgreen: Bsi denn CU |
Moin Hanswurst,
Zitat:
Zitat:
|
das mit dem 2.Parameter festlegen hab ich schon kapiert ..
nur hab ich bei mir ja stehen :
Code:
wenn das IncomingMSG net da wär hätt ich ja einfach ne Zahl eingetragen , die dann der TimeOut wäre ..
TCPClient.ReadLn(IncomingMSG);
nur da ich ja dieses IncomingMSG da hab , weis ich net wie man das dann schreibt .. wie gesagt : Ich berufe mich auf die Temperatur in meinem Zimmer :wink: kannste mit bitte mal sagen (aber wohl eher schreiben :lol:) , was ich da schreiben muss ?? THX Bis denn CU |
Moin Hanswurst,
Zitat:
;-) PS: Angabe in ms, wie beim Timer. |
Danke für den Tip ..
1.wo findet man die Hilfe der Indys ?? meinst du in der "normalen" Hilfe nach INDY suchen und da dann auf den TCPClient ?? weil ich da nix find :( 2.das mit dem "(" hat mir zwar die auztoverfollständigung geöffnet , aber mir net weitergeholfen ... ich hab bisher den Code :
Code:
var TimeOut:Integer;
TCPClient.ReadLn(TimeOut),IncomingMSG); aber der meint , dass String und Integer etwas verschiedenes ist .. irgendwie ja logisch .. ein bischen Source bitte :D THX |
Moin Hanswurst,
vertausch mal die Message und das Timeout, ausserdem lass mal die Klammer in der Mitte weg (das hätte der Compiler wohl eh' nicht geschluckt). Was die Hilfe der Indys angeht: Soweit ich weiss sind die Indys doch fester Bestandteil von D7? Dann müsste, für mein Verständnis, auch die Hilfe mit in das Hilfesystem integriert sein. Die Kompo nach der Du suchen musst heisst auch TidTCPClient. |
Ähm kenne mich mit Indys net aus, aber ein zweiter Parameter
sieht in der Regel so aus: Anweisung(Parameter1, Parameter2); Wenn er in Parameter1 also einen String erwartet, was deine Fehlermeldung deutlich macht, dann... Gruß Minz |
Liste der Anhänge anzeigen (Anzahl: 1)
Namd Leutz
das mit dem TimeOut hab ich jetzt (zufällig) rausbekommen :
Code:
so ..
TCPClient.ReadLn(IncomingMSG,20);
erstmal hab ich mich gefreut .. dannach is mir aufgefallen , dass der Client trotzdem Freezed .. und ich weis NICHT warum der Compiller mekert nix .. also kann ich auch keinen Codeschnipsel Posten , der Probleme macht .. noch ne Frage: wenn man den Timer auf 1000 einstellt , werden dann die Mesages , die zwischen dem OnTimer ankommen gelöscht , oder erst dann abgerufen ?? wenn das 2. zutrifft , könnte man den Timer 1000 (oder mehr) stellen , da es ja 1.nur recheneistung zieht und 2. es auf die Sekunde zeitverzögerung ja net ankommt ; da die meisten Lwute ja relativ langsam schreiben @Minz könntest du dich bitte etwas genauer ausdrücken , als dass du einfach schreibst : [Zitat] Wenn er in Parameter1 also einen String erwartet, ... , dann .. wobei sich das latzte "..." direkt auf dein geschriebenes bezieht ... PS: den Server hab ich nochnicht verändert , also is nur der Client im Anhang Bis denn CU |
Naja dachte der Hinweis wäre einleuchtend genug gewesen...
Fällt dir denn da gar nichts auf?: Mein Hinweis: Anweisung(Parameter1, Parameter2); Dein zufällig gefundenes: TCPClient.ReadLn(IncomingMSG,20); |
darauf bin ich über 2 stunden davor gekommen , bevor ich deinen Post gelesen hatte ...
|
Namd Leutz
würde sich bitte jemand dazu entscheiden , den Source , wenn auch nur kurz, durchzusehen , und mit bitte sagen , wo da der Wurm drin is ?? ich bin schon kurz vor dem Verzweifeln .. :( der Compiler/debugger mekert NICHTS .. der Client freezed einfach , wenn ich zum Server connecte .. und wenn er , klingt komisch is aber so , mal nicht freezed und ich ne Nachricht (TCPClient.writeLN(Edit1.text)) , mit BufferOpen und Close .. , zum Server schicke , dann freezed der Client und der Server meint , dass der Client disconnecet ist .. Bitte helft mir .. *verzweifel* THX 4 help Bis denn CU |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz