Also...
Ich habe folgendes Problem, wenn mein Client mittels SendNetworkString einen String zum Server schickt, muss der Server ihn ja mit ReceiveNetworkData empangen. Jetzt weiß ich aber nicht, wie ich die Roh-Daten, die mein Server empfangen hat, wieder in den Text umwandeln kann den mein Client verschickt hat.
Ich bedanke mich schonmal im Voraus für eure Hilfe.
SendNetworkString... Roh-Daten in Text umwandeln
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Code: Alles auswählen
PeekS(*DatenBuffer, DatenBufferLaenge)

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

In der PB Hilfe steht:
Ich habe es zwar nicht getestet, aber das bedeutet auch, dass die gesendeten Rohdaten entweder in Unicode oder in ASCII gesendet werden, abhängig von der Compiler-Option.
Wobei der Empfänger das String-Ende nicht erkennen kann, da das abschließende NULL-Character nicht mitgesendet wird!
Ich habe gerade eine Kommunikation aufgebaut, in der nur Strings gesendet werden, wobei ich SendNetworkData verwende und immer das NULL-Zeichen mitschicke, damit das Ende des Strings erkannt wird. Die Daten schicke ich verpackt in XML. Binärdaten (brauche ich in meiner Anwendung nicht) müsste ich kodieren, damit evt. NULL-Zeichen nicht vorkommen. Damit brauche ich keine Längenangaben mitschicken und verwende auch keine festen Paket-Größen.
cu, helpy
Das bedeutet, dass SendNetworkString sicher nicht mehr ist als:SendNetworkString() only provides a solution to quickly send strings. The string will be sent as raw data (without the terminating NULL character)
Code: Alles auswählen
Procedure SendNetworkString( Connection, String.s )
SendNetworkData( Connection, @String, StringByteLength( String ) )
EndProcedure
Wobei der Empfänger das String-Ende nicht erkennen kann, da das abschließende NULL-Character nicht mitgesendet wird!
Ich habe gerade eine Kommunikation aufgebaut, in der nur Strings gesendet werden, wobei ich SendNetworkData verwende und immer das NULL-Zeichen mitschicke, damit das Ende des Strings erkannt wird. Die Daten schicke ich verpackt in XML. Binärdaten (brauche ich in meiner Anwendung nicht) müsste ich kodieren, damit evt. NULL-Zeichen nicht vorkommen. Damit brauche ich keine Längenangaben mitschicken und verwende auch keine festen Paket-Größen.
cu, helpy
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
ASCII oder UTF-8, nicht Unicode!helpy hat geschrieben: Ich habe es zwar nicht getestet, aber das bedeutet auch, dass die gesendeten Rohdaten entweder in Unicode oder in ASCII gesendet werden, abhängig von der Compiler-Option.
Steht im moment noch nicht in der Hilfe, aber Fred ist dran

Deswegen ist SendNetworkString() sehr wohl nützlich, jedenfalls im Unicode-
Modus.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Ahhh, d.h. SendNetworkString funktoiniert so ähnlich wie ...:
Danke ts-soft für die Info!
cu, helpy
Code: Alles auswählen
Procedure SendNetworkString( Connection, String.s )
CompilerIf #PB_Compiler_Unicode
Protected StringUTF8.s = Space(Len(String))
PokeS( @StringUTF8, String, -1, #PB_UTF8 )
SendNetworkData( Connection, @String, StringByteLength( StringUTF8, #PB_UTF8 ) )
CompilerElse
SendNetworkData( Connection, @String, StringByteLength( String ) )
CompilerEndIf
EndProcedure
cu, helpy
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)