Octet strings

Hi,

aus Logdateien einer Kommunikation zwischen Rechnern habe ich den Binärsalat (in octet strings), wie etwa folgt (ausschnittsweise):

data: '001\005\212\301\000\027\000\002\352\306\000Q\317\241\377....'

und glaube, folgendes darüber bereits herausgefunden zu haben:

  • bei dem string handelt es sich das binärkodierte ergebnis eines c-structs (oder python)
  • der wert zwischen 2 backslashs entspricht 1 Byte (größter Wert 377 entspricht 255 zur Basis 10)
  • ohne den Aufbau des c-structs ist es nahezu unmöglich irgendwelche aussagen über den inhalt der nachricht zu machen.

das ist nicht weiter schlimm. ich weiss, das zum beispiel absender-id an 5.stelle oder sowas ist, und kann den octalen wert wieder in einen dezimalen wert umrechnen (glaub ich zumindest):

data[5] = 027 (oct) => 23 (dez)

ich habe aber erstmal noch grundlegende Fragen, und hoffe, mir kann dabei jemand helfen:
1.) liege ich mit allem oben erwähnten richtig? wenn nicht, wie kann es dann sein?

2.) wie kann es sein, das einige octale werte doch grösser als 377 sind bzw. sogar characters darin vorkommen?

3.) angenommen, ich habe integerwerte zwischen 0…65535. das ist doch ein long-wert, oder? wie muss der nach obigem schema aussehen?

Danke & Gruesse
Christian

hi

[schnipp]

das ist nicht weiter schlimm. ich weiss, das zum beispiel
absender-id an 5.stelle oder sowas ist, und kann den octalen
wert wieder in einen dezimalen wert umrechnen (glaub ich
zumindest):

weißt du nun sicher, wie die logdaten aufgebaut sind bzw. was genau dieses ominöse programm log’t oder _möchtest_ du es wissen?
woher hast du das mit der 5. stelle?

2.) wie kann es sein, das einige octale werte doch grösser als
377 sind bzw. sogar characters darin vorkommen?

nun vermutlich weil es doch nicht nur octale zahlenwerte sind?! was soll man auf diese frage sonst antworten? :wink:

3.) angenommen, ich habe integerwerte zwischen 0…65535. das
ist doch ein long-wert, oder? wie muss der nach obigem schema
aussehen?

integer soll long sein ?? integer ist abhängig von der rechnerarchitektur … also entweder 2byte (65536 zahlen) oder 4byte bei rechnern mit 'nem anderen bus.
die zahlenbereiche sollten aber in jeder (compiler) docu irgendwo auftauchen bzw. lassen sich ja mit einem programm schnell ermitteln - sizeof()

vielleicht verrätst du uns/mir welches programm das log erzeugt…?

Danke & Gruesse
Christian

hoffe das hilft,

STK