Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

41

30.07.2014, 11:06

Ach so :D da hast du natürlich recht. Ich hatte das mal zum Testen gemacht, als ich noch Strings benutzte. Wenn die Uni für heute vorbei ist, werde ich das prüfen. Ich habe aber öfters gelesen, dass zum String serialisieren am besten sei, aber ihr sagt mir, dass bytes[] besser sei, was stimmt denn nun?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

42

30.07.2014, 11:44

byte[] natürlich. Protobuff ist Byte. Dateien sind Bytes. Netzwerkströme sind Bytes. Daten in einem Computer und in jeglicher digitalen Verarbeitung sind Bytes. Wieso man da Strings nehmen sollte, ist mir unverständlich.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

43

30.07.2014, 14:00

Strings sind doch auch nur aneinandergehängte bytes :hmm:

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

44

30.07.2014, 14:21

Jein, natürlich sind Strings wie sämtliche digitalen Informationen Bytes. Aber Strings sind Zeichenketten und haben somit eine andere Semantik und es macht somit keinen Sinn binäre Daten in einen String umzuwandeln. Zudem ist nicht jeder String mit einem Byte pro Character kodiert.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

45

30.07.2014, 14:49

Ich könnte mir vorstellen, dass gemeint war in ein Zeichenbasiertes Format wie JSON, XML usw. zu Serialisieren. Da ist dann ein String natürlich sinnvoll.

Und ich wäre auch vorsichtig mit Aussagen wie „Strings sind nur Byte-Sequenzen.“ Strings sind Zeichenketten, und ein Zeichen besteht aus einem ODER mehreren Bytes, je nach Codierung. Ich denke ich habe verstanden wie dass jetzt grad hier gemeint war, wollte dies jedoch hinzu fügen.

Edit: Dass passiert wenn man immer beim schreiben unterbrochen wird... Ich war zu langsam.
:love: := Go;

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

46

30.07.2014, 16:15

Nein, da ist ein String nicht sinnvoll. Protobuff ist ein Bytestrom und kein String. Wenn es als JSON oder XML serialisiert werden sollte, dann wäre eine Umwandlung des Bytestroms in Base64 sinnvoll und die einzig gangbare Lösung. Ein String wäre da nämlich sehr fatal und nicht Format-konform.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

47

30.07.2014, 16:17

Danke BC jetzt geht alles.
Also der hauptsächliche Fehler lag an dem string, mit byte[] geht alles.
Natürlich war dann noch der Fehler, dass ich noch aus Testzwecken das Serialize(login) da stehen hatte.

Eine Problematik ist mir aber noch aufgefallen:
Es sollen ja mehrere User auf dem Server sein können, wie wäre es, wenn ich eine Klasse erstelle (Beispielname: Session) und für jeden aktiven User erstelle ich dann jeweils ein Objekt der Klasse. Ist das ein guter Ansatz?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

48

30.07.2014, 16:57

Kommt wohl auf die Art der Verbindung an. Wenn Du permanente Verbindungen hast, macht das keinen Sinn, weil Du ja eh die Verbindung als Erkennungsmerkmal hast. Hast Du aber nur sporadische Verbindungen wie beispielsweise bei HTTP, dann brauchst Du natürlich einen Weg, um einen User zu identifizieren. Hier machen Sessions natürlich Sinn.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

49

30.07.2014, 17:43

Und wie soll ich das bei einer permanenten Verbindung regeln? der Derver muss ja wissen welcher Client grade mit ihm "redet".

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

50

30.07.2014, 17:49

Wenn er eine permanente Verbindung hat, muss er doch wissen von wem er Daten abruft oder wem er die schickt ;) Im Normalfall ist das das entsprechende Socket.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige