Network mit Unicode, Strings senden und empfangen
Verfasst: 13.11.2009 11:43
Folgender Server und Client zeigen korrekt im Debugger das ü und das € Zeichen an, allerdings nur, wenn ich beide Executables OHNE Unicode Modus kompiliere.
Server:Client:
Mir ist klar, dass der Code keine Fehlerüberprüfungen eingebaut hat - es geht echt nur um den Test hier - der Code wird in dieser Form in weiteren Programmen sicher nicht verwendet!
Wenn ich bei beiden Files Unicode in den Compiler Options aufdrehe, kommt Mist an, siehe angehängtes Bild:

Ich hab jetzt schon viele Threads gelesen, die dieses Thema behandeln, ich kriegs aber nicht gebacken im Unicode Modus einen vernünftigen String von A nach B zu schicken - desweiteren fehlt mir ein wenig das Verständnis zu den Peek und Poke Dingen, womit ich vielleicht was zusammenstricken könnte. Bitte verzeiht mir meine Unwissenheit.
Kann mir wer helfen und bitte mit einem minimalen funktionierendem Beispiel aushelfen?
Wichtig wäre, dass der Code in 4.31 unter Windows funktioniert - die 4.4 Betas will ich nicht verwenden, solange sogar die Installation der Entwicklungsumgebung den Antivirus herausfordert (nein, ich installiere keinen anderen Antivirus - ein Kunde würde das ja auch nicht tun...)
Vielen herzlichen Dank!
Server:
Code: Alles auswählen
InitNetwork()
port = 1234
buffersize = 1000
*buffer = AllocateMemory(buffersize)
CreateNetworkServer(0, port)
Repeat
sevent = NetworkServerEvent()
If sevent
clientid = EventClient()
Select sevent
Case #PB_NetworkEvent_Connect
Debug "s: client connected"
Case #PB_NetworkEvent_Data
Debug "s: client has send!"
ReceiveNetworkData(clientid, *buffer, buffersize)
debugstring.s = ">" + PeekS(*buffer) + "<"
Debug debugstring
Case #PB_NetworkEvent_File
Debug "s: ignore file"
Case #PB_NetworkEvent_Disconnect
Debug "s: client disconnected"
quit = 1
EndSelect
EndIf
Until quit = 1
Debug "s: quit!"
Code: Alles auswählen
InitNetwork()
port = 1234
conid = OpenNetworkConnection("127.0.0.1", port)
SendNetworkString(conid, "ü€")
CloseNetworkConnection(conid)
Wenn ich bei beiden Files Unicode in den Compiler Options aufdrehe, kommt Mist an, siehe angehängtes Bild:

Ich hab jetzt schon viele Threads gelesen, die dieses Thema behandeln, ich kriegs aber nicht gebacken im Unicode Modus einen vernünftigen String von A nach B zu schicken - desweiteren fehlt mir ein wenig das Verständnis zu den Peek und Poke Dingen, womit ich vielleicht was zusammenstricken könnte. Bitte verzeiht mir meine Unwissenheit.
Kann mir wer helfen und bitte mit einem minimalen funktionierendem Beispiel aushelfen?
Wichtig wäre, dass der Code in 4.31 unter Windows funktioniert - die 4.4 Betas will ich nicht verwenden, solange sogar die Installation der Entwicklungsumgebung den Antivirus herausfordert (nein, ich installiere keinen anderen Antivirus - ein Kunde würde das ja auch nicht tun...)
Vielen herzlichen Dank!