Server / Client

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
scoty
Beiträge: 64
Registriert: 18.10.2005 16:43
Wohnort: Raum Hildesheim

Beitrag 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????
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag 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?
scoty
Beiträge: 64
Registriert: 18.10.2005 16:43
Wohnort: Raum Hildesheim

Beitrag 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!
scoty
Beiträge: 64
Registriert: 18.10.2005 16:43
Wohnort: Raum Hildesheim

Beitrag 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!
Antworten