SendNetworkString() auseinanderhalten

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

SendNetworkString() auseinanderhalten

Beitrag von Joel »

Hi,

Wenn ich in meinem Client mit SendnetworkString() einen String sende und sofort danach noch einen, dann überlappen sich die zwei Strings und werden als einer ausgegeben.

Ist es irgendwie einfach möglich, egal wie viele Strings gesendet wurden, per NetworkServerEvent() erstmal nur ein Event zu Verarbeiten (also eine String) und bei nächsten NetworkServerEvent() Aufruf den anderen?
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
mk-soft
Beiträge: 3847
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: SendnetworkString() auseinanderhalten

Beitrag von mk-soft »

Handshake fehlt

1. Client sendet String 1
2. Server bestätigt empfang
3. Client sendet String 2
4. Server bestätigt empfang
5. ....
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Re: SendNetworkString() auseinanderhalten

Beitrag von Joel »

ja hab ich mal versucht, aber das ist alles zu viel Unordnung. nach jedem senden muss ja dann eine schleife hin, die fragt, ob der String angekommen ist bzw. ein Wert sich geändert hat. Ich sende in meinem Programm sehr viel. Mit diesen Schleifen würde es doppelt so groß werden.

Gibt es nicht Möglichkeiten immer nur ein Event abzurufen. Oder mit irgenteinem speziellen Zeichen die 2 Packete voneinander zu trennen?
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
DNA
Beiträge: 40
Registriert: 25.02.2006 23:54

Re: SendNetworkString() auseinanderhalten

Beitrag von DNA »

Deine Frage ist zwar schon etwas länger her, aber ich hatte auch das gleiche Problem und das wie folgt gelöst:
Hinter jeder Nachricht steht ein Ende, was für alle gilt, dabei musst du halt achten, dass diese Zeichenfolge nie in der eigentlichen Nachricht auftauchen wird. Evtl. funktioniert es auch wenn du einfach nicht druckbare zeichen nimmst. z.B. CHR(1).

Naja, also wenn du ein Ende bestimmt hast, und das hinter jeder Nachricht steht, kannst du einfach in einer Schleife alles abarbeiten lassen. Musst halt nur immer an der entsprechenden Stelle den String auseinander nehmen. Wenn es nur ein Zeichen ist, kannst das mit StringField machen.

PS: Bei mir funktioniert das ohne Probleme.
Antworten