AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ServerSocket1ClientRead
Thema durchsuchen
Ansicht
Themen-Optionen

ServerSocket1ClientRead

Ein Thema von yildi · begonnen am 24. Sep 2006 · letzter Beitrag vom 26. Sep 2006
 
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: ServerSocket1ClientRead

  Alt 24. Sep 2006, 20:26
Zitat von Florian Bernd:
Meinen Beispielchat mal angeguckt?
Ok, habe ich nun gemacht.
  • Warum nutzt du einen TMemoryStream beim versenden der Daten? Schick damit mal eine 4 GB Datei und schon kratzt er erstmal stundenlang seine Swap Datei voll. Und warum kein SendStream() der TCustomWinSockets nutzen? Dieser kehrt sofort zurück und wartet nicht, bis alles im Socket Buffer ist...
  • Warum definierst du eigene Typen für Objektmethoden die schon definiert sind? z.B. hättest du dir einfach TOnRead = TNotifyEvent; definieren können.
  • Was sollen die Sleep()'s zwischen den Teilstrings? Dein Protokoll teilt die Teilstrings und nicht eine Pause zwischen dem absenden. Benutz dein Chat mal über ein wackliges Netzwerk und du wirst dich freuen, weil diese Teilung völlig nichtig ist.
  • Mit dem "StLG:" und der angehängten ASCII Zahl gehst du auch fest davon aus, dass du eine Teilung bekommst, wenn du die Strings mit einem Sleep() trennst beim senden. Dem ist nicht so - dafür gibt es überhaupt keine Handhabe. Da dies in deinem LAN funktioniert sagt nichts aus.
  • Dein Splitten des Strings beachtet keine Verschiebung, falls z.B. das Sleep() mal nicht gewirkt hat oder noch ein Zeichen vom letzten Kommando im Stream war.
  • OnFileReadF(): Du schaust nirgendwo, wieviel überhaupt empfangen wurde. Was ist, wenn du vom Socket aufgerufen wird aber dieser gerade mal "Date" empfangen hat? Dein Vergleich geht schief und er schaltet nie in den Datenmodus, da er dieses niemals erreicht.
  • OnFileReadF(): du beachtest überhaupt nicht wieviel eigentlich noch zur Datei gehört. Du vergleichst auf grösser gleich und schreibst alles was im Socket Buffer ist direkt in die Datei. Somit wird die Datei mit deinem Chat sogar grösser nach der Übertragung.

Das wolltest du bestimmt nicht hören, aber es sind viele Faktoren die gegen eine sichere Funktionsweise des Chats sprechen.
  Mit Zitat antworten Zitat
 


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:29 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