Forum: Netzwerke
Delphi
by BlackJack,
21. Jul 2006
also einen kleiner Fehler, wenn es im LAN "zu schnell" mit dem Nachrichtenaustausch wurde, hab ich ausmerzen können, allerdings bleibt weiterhin der Fehler beim benutzen einer Internetverbindung statt LAN... :(
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
Ok dann kommen jetzt hier mal die Resultate, die ich mit den Tipps aus dem Thread hier erstellt habe. Über Netzwerk klappt das auch alles schon ganz gut, wenn ich allerdings übers Internet gehe schickt der Client nur ein paar mal Daten, und danach kommt nichts mehr - der Client bleibt allerdings anpingbar...
Hat dazu jemand ne Idee?
(etwa alle 30 sekunden werden alle Clients angepingt, also...
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
ok, aber dann bleibt mir ja keine andere Wahl als mit nem temporären MemoryStream arbeiten und ich kann nicht irgendwas wie fStream.CopyFrom(fStream, xxx) machen. aber gut ich denke jetzt hab ich erstmal genug Ideen um weiter proggen zu können.
Besten Dank :-D
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
und genau das war meine Frage: wenn ich Dest.CopyFrom(Source, Size) mache, dann kopiert er Size Bytes aus Source nach Dest. aber wohin nach Dest? nach Position = 0?
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
jo das ist mal ne gute idee. :thumb:
naja dann ist das ja eigentlich das gleiche wie ich es bisher auch vorhabe. wenn es keinen Datenblock gibt, dann wird einfach 0 in die Datenblocklänge geschrieben und gut ist. da überträgt man sogar genau die gleiche anzahl an bytes ;)
das zuviel/zuwenig ausgelesen wurde, kann ja eigentlich gar nicht vorkommen; ich lese ja erst dann aus dem...
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
hmm so wie ich das in der hilfe verstehe zeigt Data auf einen Block, der Infos zu der jeweiligen Socketverbindung speichert. allerdings steht in der Delphi-hilfe sonst nicht viel dazu, wo kann man da denn mehr erfahren?
solle das dann nicht so aussehen: Socket.ReceiveBuf(Pointer(Integer(MemoryStream.Memory) + OldSize)^, Socket.ReceiveLength);
weil so wie ich das verstanden habe zeigt...
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
also quasi ne Warteschlange? jo ich glaube das ist ne gute idee, so werde ich das mal versuchen. :-D
aber dann kann ich mir ja auch die eigene Methode zum Empfangen (ReceiveData) sparen, oder? weil wenn ich im OnRead einfach mit ReceiveText auslese, dann gibt er mit doch automatisch alles zurück, was der Socket grade vorliegen hat, und das kann dann einfach an die Warteschleife anhängt werden....
Forum: Netzwerke
Delphi
by BlackJack,
19. Jul 2006
Wie ist das denn, wenn ich im OnRead-Event sagen wir 50 byte gesendet bekomme (das kann ich doch über Socket.ReceiveLength erfahren, oder?), aber nur 30 Bytes über Socket.ReceiveBuffer aus dem Socket auslese. wenn dann wieder ein OnRead-Event auftritt, stehen dann "vorne im Socket" noch die restlichen 20 Byte vom vorherigen Event?
Oder umgekehrt, wenn ich 20 bytes im OnRead bekomme, aber 50...
Forum: Netzwerke
Delphi
by BlackJack,
18. Jul 2006
Moin,
ich habe ein paar Probleme mit einer Client-Server-Verbindung (mit TServerSocket & TClientSocket). Und zwar möchte ich mir einen Netzwerkrenderer für meinen Raytracer programmieren (spielt aber erstmal keine Rolle). Das ganze soll so ablaufen:
Der Client schickt ne Nachricht zum Server, das er gerne ne Aufgabe hätte ("givejob")
Der Server schickt einen Auftrag zum Client, was dieser...