Autor Beitrag
bier
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 23.01.06 15:35 
hallo ich verwende im moment die kompos tserversocket und client ,da diese sehr easy zu bediehnen sind. Mit ihnen kann man sehr gut jede verbindung verwalten durch dass socket handle und mit sendtext kann man leicht sachen verschicken. Nun stoße ich aber an die grenzen dieser kompos da ich viele male sendtext beim client ausführe, und dieses dann natürlcih alles als ein block beim server ankommt und nicht getrennt. Da ich nun aber keine lust habe ein protocol dafür zu schreiben und auch nicht mit delay tricks arbeiten will, suche ich eine neue kompo die aber nach möglichkeit genauso einfach zu bediehnen ist.


kann mir da jemand einen sinnvollen vorschlag machen welche kompos ich verwenden sollte?
ich arbeite nun mit text verschicken also keie größeren datenpackete.

und vll auch gleich eine demo version zu dieser kompo zeigen, wenn ihr sowas grad auch im kopf habt wo man sowas finden kann.

vielen vielen dank ;)
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 23.01.06 15:44 
Dieses "Problem" wirst Du mit jeder Sockt-Komponente haben, außer sie bringt selber ein Protokoll mit.
Das beschriebene Verhalten liegt in der Natur von TCP/IP. Du wirst um ein eigenes Protokoll also nicht umher kommen.

Bis neulich ...
LLCoolDave
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win XP
Delphi 2005
BeitragVerfasst: Mo 23.01.06 15:48 
Also ich hab das Problem bei mir folgendermaßen gelöst: An das Ende jeder Nachricht ein Trennzeichen gesetzt (etwas, das sonst eh nicht in der Nachricht auftaucht), dann beim empfangen die einzelnen nachrichten aufgeteilt und in ner schleife durchgegangen, z.B.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
s := Socket.Receivetext;
while pos(Trennzeichen,s)>0 do
begin
stringlist.add(copy(s,1,pos(Trennzeichen,s)-1));
delete(s,1,pos(Trennzeichen));
end;


Dann hast du in der Stringlist alle einzelnen Nachrichten, die du in einer schleife auswerten kannst. Ist sicher nicht die beste Lösung, bei mir geht das aber gut.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 23.01.06 16:03 
Moin!

Ich verweise mal auf mein Protokoll-Chat-Tut. 8) :wink:

cu
Narses