es hat geklappt!
nicht "s6_addr" ,sondern benutzen "s6_addr32" !
meine Güte, ich habe diese Definition "in Papierkorb der Toilette in Iraq" gefunden!
vielen Dank
Ich vermute mal, dein Problem ist die Größe des reservierten Speicherbereiches - in ein char buf[3] kannst du nur zwei Zeichen (plus \0) reinpacken, wenn dein String länger wird, flutest du damit den Speicherbereich der benachbarten Variablen (und das ist anscheinend der file-Deskriptor).
(btw mußt du nicht unbedingt den vollen String per write kopieren - du kannst auch vorher per strlen() bestimmen, wie groß deine Daten tatsächlich sind)
Der Damian hat doch wunderbare Links mit Beispielen auf seine Seite gepackt. So schwer ist das doch wirklich nicht. Hier der Link von Damian:
http://www.galileocomputing.de/openbook/unix_guru/node393.html
Muss man doch nur noch entsprechend anpassen.
Für was brauchst du diese ID egtl überhaupt?
Wenn du die als zentrale, eindeutige ID brauchst (die über jegliche Kommunikation hinweg eindeutig ist), dann wirst du an deiner zentralen Stelle (also scheinbar der Controller) diese IDs verwalten müssen. Das heisst wiederum, wenn der Roboter eine neue Kommunikation aufbauen möchte, dann muss er erst eine spezielle Anfrage an den Controller schicken, der ihm dann zB als Antwort eine freie ID zurückschickt. Diese könnte er dann verwenden.
Lies zunächst mal ein paar gute Bücher.
Stelle sicher, dass das hier dabei ist: Effective C++ | ISBN: 0201924889
Schreibe selbst Übungs-Programme.
Wenn Du Lust hast, Code zu lesen, dann nimm zB den von HumeSikkins' Tools, die sind allesamt sehr schön geschrieben.
"Erstens solltest du die Flags setzen, bevor du die Adressinfo abfragst und zweitens solltest du diese Flags auch (als vorletzten Parameter) übergeben:"
so schöne Erklärung habe ich nie erlebt !!!
vielen Dank CStoll
Hat sich erledigt. Ich dachte eigentlich, dass ich das gestern schon ausprobiert hätte...vielleicht habe ich mich auch verschrieben...
Schalter "-dynamic-link /<dir/<lib>" ist es.
Demian_guest schrieb:
Muss der Patch ein bestimmtes Aussehen haben (z.B. ein diff) oder reicht es, den neuen Quellcode an sie zu schicken?
Normalerweise schickt man einfach Unified-Diffs. In ESRs "The Art Of UNIX Programming" gab es dazu einen Abschnitt:
http://www.faqs.org/docs/artu/ch19s02.html
Waitformultipleobjects gibt es unter PThread nicht. Du musst das mit Condition Variablen emulieren.
Soweit ich weiss wird aber Waitformultipleobjects von den Threadinggurus als Designfehler angesehen. Da sollte man eventuell auch unter Windows vorsichtig sein.
Hi,
dank dir für den Link ich werd mir das mal anschauen.
Das mit dem Struktur packen hört sich schon mal interessant an.
Also auf Linux Seite sieht es so aus:
send(sock,(void *)meineStruktur,sizeof(meineStruktur));
auf der Windows Seite schauts so:
recv(sock,(char *)&meineStruktur,sizeof(meineStruktur),0);
Ich hab bis jetzt nur ein paar Tests gemacht, aber es sah so aus als würde es gehen, bin aber kein Experte.
Wie funktioniert das mit dem packen?
Auf den Link hab ich mal nen Bookmark gelegt, den werde ich mir Heute Abend mal anschauen.