Seite 2 von 2

Verfasst: 17.09.2008 23:43
von scoty
So, meine Vermutung traf nicht zu, es liegt nicht an irgendeiner Initialisierung.

Meine Variable txt.s wird nicht durch PeekS() mit Daten gefüllt, jedenfalls werden keine in der Debugansich angezeigt.

Code: Alles auswählen

define txt.s
define *buffer
define len.l
define len_.l

txt = ""
len = 2000
*buffer = allocatememory(len)

repeat
  len_ = receiveNetworkData(CliendID, *buffer, len)
  txt = txt + PeekS(*buffer)
Until len <> len_         ; Falls mal mehr als ein Packet angekommen ist

freeMemory(*buffer)

printn(txt)
So, und beim PrintN() kommt dann nur Müll raus.

Was mach ich falsch????

Verfasst: 18.09.2008 08:58
von gnasen
Das da ist aber hoffentlich nur ein Ausschnitt aus deinem Code, oder?

Wenn nicht, ClientID ist ihm vollkommen unbekannt, Netzwerkevents werden nicht abgefragt....

Wie wäre es mit nem Lauffähigen Code?

Verfasst: 18.09.2008 09:12
von scoty
Natürlich ist das nur ein Ausschnitt, und zwar der, der die Probleme macht. Natürlich habe ich die richtige ClientID, denn im Speicherbereich habe ich die Daten, die ich erwarte, terminierend mit NULL!

Verfasst: 18.09.2008 10:00
von scoty
OK, alles geklärt!

Nie wieder optionale Flags offen lassen. SendNetworkString() sendet in Ascii, Windows liest mit Peeks auch in Ascii, Mein Linuxprogramm aber als UNICODE. Nun gehts!