Seite 1 von 1

Server sendet - Client emfängt - PeekS() wandelt nicht!

Verfasst: 09.12.2011 17:14
von SpecialDXX
Hallo Board,

mein Problem ist simple zu erklären, aber dennoch finde ich den (Fehler) nicht.

Code vom sendenden Server:

Code: Alles auswählen

Procedure.l SendTC(ClientID, absend.s)
 Debug "Pro SendTC :: absend.s: "+absend.s
 *STBuffer = AllocateMemory(2400)
 PokeS(*STBuffer, absend$, -1, #PB_Ascii)
 Debug "Pro SendTC :: *STBuffer: "+Str(*STBuffer)
 sendok = SendNetworkData(ClientID, *STBuffer, MemorySize(*STBuffer))
 FreeMemory(*STBuffer) 
 Debug "Pro SendTC :: sendok: "+Str(sendok)
 ProcedureReturn sendok       
EndProcedure 
Code vom Client:

Code: Alles auswählen

Debug ReceiveNetworkData(ConnID, *Buffer, 2401)
            Debug *Buffer

              bef$ = PeekS(*Buffer, -1, #PB_Ascii)
              Debug bef$
Debug vom Server gibt folgendes rauß:
Pro SendTC :: absend.s: Hello!
Pro SendTC :: *STBuffer: 61278160
Pro SendTC :: sendok: 2400

Debug Client:
2400
36767696




Das Problem liegt daran, dass der Client wohl 2400 Byte emfängt aber der Befehl PeekS keinen String herraus gibt =(

Vielleicht hat jemand eine Lösung dafür...

Liebe Grüße
Bernt

Re: Server sendet - Client emfängt - PeekS() wandelt nicht!

Verfasst: 09.12.2011 18:06
von STARGÅTE
Ist denn dein *Buffer beim Clienten auch ein gültiger Speicherpuffer mit (in dem Fall) 2401 Bytes ?

Wie oft sendest du diese Server-Sachen und wie oft empfängst du das Zeug ?

Hast du schon mal im Memory-Viewer geguckt ob der String vllt in einem anderen Bereich der 2400 Bytes ist ...

Re: Server sendet - Client emfängt - PeekS() wandelt nicht!

Verfasst: 09.12.2011 19:07
von SpecialDXX
Ja der Client benutzt zuvor:

Code: Alles auswählen

*Buffer = AllocateMemory(2401)
klappt trotzdem nicht =(

Naja... wie hofft sende ich es ist eine gute Fragen... zu Testzwecken im Moment nur ein einzigstes Mal.

Re: Server sendet - Client emfängt - PeekS() wandelt nicht!

Verfasst: 09.12.2011 19:11
von - chris -

Code: Alles auswählen


Procedure.l SendTC(ClientID, absend.s)

PokeS(*STBuffer, absend$, -1, #PB_Ascii)

erst absend.s, dann absend$

das sind zwei unterschiedliche Variablen!

Re: Server sendet - Client emfängt - PeekS() wandelt nicht!

Verfasst: 09.12.2011 19:15
von SpecialDXX
Hier.... *ggrrrrr* >_< Ich glaubs nicht! Genau daran hat es gelegen! Die Übertragen Byte's mussten ja stimmen wegen PokeS().
Oh man.. hab die ganze letzte Nacht versucht das Problem zu lösen und es war mir unerklärlich O.o

Danke Danke!!! :praise:

Re: Server sendet - Client emfängt - PeekS() wandelt nicht!

Verfasst: 09.12.2011 20:38
von Bisonte
ein EnableExplicit am Anfang des Codes wirkt Wunder ;)

Dann hättest Du Dir den Ärger ersparen können....