Seite 1 von 1

Neue Events bei NetworkClientEvent()?

Verfasst: 15.11.2004 18:32
von RaVeN99
Hallöchen zusammen!

Nachdem ich mich in letzter Zeit etwas ausgiebiger mit der Netzwerkprogrammierung unter PB beschäftige ist mir heute etwas doch recht komisches aufgefallen.
Standarmäßig dokumentiert für den Client sind folgende Events:
0 : Nichts ist passiert
2 : Roh-Daten wurden empfangen (können mittels ReceiveNetworkData() gelesen werden)
3 : Eine Datei wurde empfangen (kann mittels ReceiveNetworkFile() gelesen werden)
Heute allerdings ist mir aufgefallen dass PB da anscheinend noch ein weiteres Event ermöglicht:
5 : A string has been received
Davon finde ich allerdings nichts in der Doku - hab ich was verpasst, oder isses "just a undocumented feature"? ;)


Mfg
RaVeN

Verfasst: 15.11.2004 19:06
von DarkDragon
Das ist mir schon vor nen paar monaten aufgefallen, steht halt inner statuszeile

Verfasst: 15.11.2004 19:21
von RaVeN99
Hast du vielleicht damit schon ein wenig herumexperimentiert?
Bzw weisst du vielleicht ob das ganze auch wirklich die funktion hat die es laut statuszeile haben soll?
Wär nicht unpraktisch ^^


Mfg
RaVeN

Verfasst: 15.11.2004 21:12
von Team100
....in jedem Fall kommt wie in der Anleitung beschrieben als event die 2
wenn ein String oder Daten anliegen. Die 5 müßte also zusätzlich
und nicht anstatt kommen. Gibt es eventuell 2 Events ? (den 2.ten mit 5)

Grundsätzlich wäre zu sagen, daß die Network-Event-Generierung
dynamisch erfolgt und immer den aktuellen Zustand wiedergibt.

Es ist ohne weiteres möglich das Netzwerk mit ReceiveNetworkData auszulesen,
auch ohne den Event abzuwarten. Ist nichts vorhanden,
bekommt man als Ergebnis -1 als Retourwert (was zu erwarten war).

Hat man ohne eine Eventabfrage alle Daten ausgelesen, so gibt der Event,
wenn man ihn nachfolgend ausliest, tatsächlich die 0 zurück.

Die Eventabfrage liefert also immer den aktuellen Zustand des
Netzwerkpuffers. Kann gut sein, daß Event=5 für Strings gedacht
war und das nicht so funktioniert hat .....

Strings senden ist ohnedies problematisch, da man damit rechnen
muß, daß zwei (oder mehr) abgesandte Strings dann als ein
einziger String empfangen werden .....

Generell kommt man um ein Handling-Protokoll bei der
Benutzung von den Network Befehlen nicht herum .... wenn
man sich die Mühe macht und so ein Protokoll schreibt, ist
das Übertragen mit den PB-Network Befehlen aber 100%ig :)

Wäre also wirklich interessant ob die 5 nur bei Strings kommt.
Die 2 muß kommen, sonst würde mein Programm wohl nicht laufen
da ich auf Event=2 abfrage :wink:

Im Moment kann ich es nicht ausprobieren, da der Netzwerksversuchs-
aufbau gerade im Umbau ist, aber demnächst sollte er wieder
bereit sein.

Alles gesagte gilt für XP und PB3.91

Cu von Team100

Verfasst: 16.11.2004 01:40
von Andre
Also wenn Ihr noch was exaktes herausfindet, nehme ich es gerne mit in die Hilfe auf (dort war's anscheinend noch nicht drin und wurde ggf. gelöscht - habe dies gerade überprüft). Andernfalls werde ich bei Gelegenheit Fred fragen... :wink:

Verfasst: 16.11.2004 18:57
von Lars
Andre hat geschrieben:Also wenn Ihr noch was exaktes herausfindet
Ich bekomme definitiv keine 5 zurück bei NetworkServerEvent(), auch,
wenn der String via SendNetworkString() gesendet wurde. Ich würde am
ehesten vermuten, dass der Calltip da falsch ist, evtl. hatte Fred da mal
ein Feature geplant oder Ähnliches :)

Verfasst: 16.11.2004 18:59
von remi_meier
Hat wohl etwas mit dem hier zu tun:
http://purebasic.myforums.net/viewtopic ... workstring