ClientSocket zu langsam ?

MaXtor

Grünschnabel
Hi!

Also ich bin ja dabei mir einen IRCbot zu scripten und habe folgendes Problem:
===========
Wenn viele Textzeilen in kurzer Zeit nacheinander eintreffen, werden diese vom Socketclient nicht als einzelne Befehle empfangen sondern als EINE zeichenkette, was SEHR unvorteilhaft ist. Meine frage ist nun, ob man irgendwie den Buffer einstellen muss o.ä. um dieses Problem zu beheben, oder eine Indy Komponente verwenden sollte ?
===========
Ich habe auch schon versucht das problem so zu lösen, dass ich die Befehle die als einer gekommen sind softwaremäßig trenne, allerdings bekomme ich dann eine Fehlermeldung, dass ein "overflow" vorliegt und das Programm wird geschlossen.

Wär nett wenn mir jemand helfen könnte.. vielleicht hat ja auch jemand eine idee für eine softwarelösung? wenn das der fall ist werde ich dann mal posten wie ich das gelöst hab... kommt halt der overflow error.
 

Patrick Kamin

Erfahrenes Mitglied
-

Hallo,
du solltest dir eine kleine Warteschlange für einkommende Nachrichten programmieren. Nimmst eine String-Variable und hängst die neuen Nachrichten einfach hinten ran. In deiner Verarbeitungsroutine parst du dann die Nachrichten, die du an den Steuerzeichen #13#10 erkennst.
 

MaXtor

Grünschnabel
Na im prinzip habe ich das ja schon..
am ende des parsens kommt

Code:
if pos(#13#10,recieved)>0 then begin
SplitString(recieved);
end;


wodurch der rest, der nun noch übrig ist wiederrum geparst wird. Allerdings will das irgendwie nicht funktionieren. Der bereits geparste befehl wurde schon vorne gelöscht.

Und wie würde ich bei deiner möglichkeit die weiterverarbeitung des wartestrings aufrufen ? ein timer ?