AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Ist der Server zu "schnell"?
Thema durchsuchen
Ansicht
Themen-Optionen

Ist der Server zu "schnell"?

Ein Thema von NightroadSora · begonnen am 28. Mär 2011 · letzter Beitrag vom 30. Mär 2011
Antwort Antwort
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 16:46
Das ist pseudocode. Aber wenn Du noch gar nicht richtig programmieren kannst, sind Sockets eh nix für dich.

Versuch dich an den Indy-Komponenten, das sollte einfacher für dich sein.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
NightroadSora

Registriert seit: 27. Mär 2011
11 Beiträge
 
#2

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 16:55
Programmieren kann ich schon, nur dachte ich trotzdem dass du mit Klassenobjekten arbeiten, von denen mit die Methoden einfach nur unbekannt sind mehr nich...

Die Indykomponenten lad ich mir tatsächlich grade runter, in der Hoffnung dass die besser funktionieren so wie ichs mir vorstelle...
  Mit Zitat antworten Zitat
NightroadSora

Registriert seit: 27. Mär 2011
11 Beiträge
 
#3

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 22:10
Also mit den INdykomponenten funktioniert bei mir gar nichts...

also nochmal:
Ich muss jetzt auslesen a) Wie groß wird die gesendete Information sein die an den Server geschickt wird
b) wie groß ist der Datensatz den Server bereits empfangen hat!

So... ich möchte jetzt gern erlernen wie das bei einem TServerSocket funktionieren würde, im INternet finde ich einfach keine vollständige Methoden und Eigenschaftenübersicht...

Zumal ServerSocket.Socket hat ja die Methode recievelength, aber wieso gibts für Client/Server.Socket keinen Sendlength? Is doch völlig bescheuert... und wenn ich jetzt SizeOf(Info) bei nem recieve(Info,SizeOf(Info)) verarbeiten will, is das immer irgendwie nichts...

Man wie mach ich das denn? Das kann doch nich so schwierig sein...
Ich verstehe einfach nich wie ich den Buffer des servers auslesen soll!
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#4

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 22:20
Zitat:
Ich muss jetzt auslesen
a) Wie groß wird die gesendete Information sein die an den Server geschickt wird
b) wie groß ist der Datensatz den Server bereits empfangen hat!
a) ist über. Warum muss der Client das wissen? Der schickt einfach ganz stumpf die Daten. Wenn er was wissen muss, ließt er einfach die Daten, die vom Server zurückkommen.
b) siehe hier, falls das die Komponente ist, die du benutzt. Damit weißt du dann, wieviel Daten schon da sind. Und wenn ReceiveLength > SizeOf(Integer) (Länge am Anfang des Pakets) oder ReceiveLength > SizeOf(Record) (Record empfangen), je nach dem Protokoll, das du baust, kannst du die Daten dann auch lesen.


HTH..
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
NightroadSora

Registriert seit: 27. Mär 2011
11 Beiträge
 
#5

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 22:29
Zitat:
Zitat:
Ich muss jetzt auslesen
a) Wie groß wird die gesendete Information sein die an den Server geschickt wird
b) wie groß ist der Datensatz den Server bereits empfangen hat!
a) ist über. Warum muss der Client das wissen? Der schickt einfach ganz stumpf die Daten. Wenn er was wissen muss, ließt er einfach die Daten, die vom Server zurückkommen.
die Anfrage von a) soll nich der Client auslesen sondern der Server...
ich werde mir die Seite gleich mal anschauen und deinen Rat ausprobieren.

Ich bedanke mich übrigens jetzt schonmal dass ihr mich bei meinem Problem so kräftig unterstützt =)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 22:31
Wenn der Client Daten an den Server sendet und erst die Länge der Nachricht verschicken soll, dann muss der Client doch wissen, wie groß die Nachricht ist, odda?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#7

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 22:42
Zitat:
die Anfrage von a) soll nich der Client auslesen sondern der Server...
Wie Sir Rufo schon sagte, der Client weiß immer, wieviel er gesendet hat. Dafür muss man sich nichtmal mit Sockets auskennen. Wenn du festlegst, dass zuerst immer ein Integer geschickt wird (Länge des Kommandos), muss der Server eben warten, bis 4 Byte (=SizeOf(Integer)) angekommen sind, und danach wartet er, bis das, was danach empfangen wurde, in der Länge dem Wert des zuerst übertragenen Intergers gleich oder größer ist.
Hätte ich meine Socket-Geschichten nicht in einer eigenen Bibliothek untergebracht und auch auf mitgelieferte Komponenten gebaut, würde ich dir hier ein dickes Beispiel posten können, aber das ist eben was komplett anderes, für 'außenstehende' kompliziert zu verstehen und eben auf mein eigenes Protokoll zugeschnitten..

LG
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
NightroadSora

Registriert seit: 27. Mär 2011
11 Beiträge
 
#8

AW: Ist der Server zu "schnell"?

  Alt 29. Mär 2011, 23:15
Immer wieder dieses SizeOf(Integer). Ich verstehe ja was damit gemeint ist. Aber wie soll das funktionieren? ReceiveLength sagt aus wie viel insgesamt ankommen soll, das hab ich kapiert.
Aber Wie komm ich jetzt ans SizeOf(Integer)?
Also für meinen Code würde es ja so lauten: ReceiveBuf(Info,SizeOf(info)), so aber ich kann ihm doch nicht sagen, dass er erst empfangen soll, quasi wenn die Länge des Empfangenem Records, das er ja noch gar nich empfangen hat, gleich groß der gesendeten Datenmenge ist...
Mein Problem ist doch, um zu wissen wie groß das Empfangene ist, muss ichs doch empfangen... aber nachdem was ihr gesagt habt, soll ich den Befehl erst nutzen wenn alles da ist, aber an die Information komme ich doch vorher gar nicht...

nur mal so nebenbei, wenn ich sequenziell jetzt durchgehe kommt bei mir generell nur noch völliger Schrott an, also wenn ich das Record empfange, was ja geht wenn ich schrittweise durchgehe wie ich ja im Startbeitrag schon geschrieben habe, und das obwohl ich an diesem Code gar nichts geändert habe... das passiert mir jetzt schon zum vierten mal, woran liegt das denn immer?
  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 19:32 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