Verständnisfragen Sockets



  • Hallo c-Community,

    ich beschäfftige mich gerade wieder mit Sockets und habe das Tutorial http://www.c-worker.ch auch durchgelesen.

    Was ich glaube verstanden zu haben ist, dass die RAW-Sockets eine Art Klasse darstellen von denen die TCP-/ UDP-Verbindungsarten abgeleitet sind. Wenn dies so ist, kann man rein theoretisch ja einen Server mit RAW-Sockets aufbauen und mit diesem könnte man dann sowohl mit UDP als auch mit TCP eine Verbinden aufbauen. Man muss dann natürlich am RAW-Server entsprechende Routinen implementieren, die den entsprechenden Verbindungstyp identifizieren.

    mirrowwinger



  • Raw ("roh") bedeutet schlicht, dass du den Kram unverarbeitet reinkriegst bzw. er unverarbeitet rausgesendet wird, d.h. du musst dann alle Paketheader selbst parsen bzw. zusammensetzen. Üblicherweise lässt dich ein Betriebssystem raw sockets auch nur aufmachen, wenn du bestimmte Rechte hast. Wenn du keinen wirklich guten Grund hast, sie zu benutzen, nimm davon lieber weiten Abstand.

    Ansonsten: UDP ist ein verbindungsloses Protokoll; per UDP eine Verbindung aufbauen zu wollen, ist also nur in Ausnahmefällen sinnvoll (man muss die Verbindungslogik dann halt selbst betreiben). Es hindert dich aber nichts daran, auf einem Port mit Standardsockets gleichzeitig nach TCP und UDP zu lauschen; TCP-Port x ist in dem Sinne ein anderer als UDP-Port x. Benutz schlicht zwei Standardsockets.



  • Die raw-sockets kannst du dann benutzen, wenn du etwas anderes als UDP oder TCP machen möchtest. Ein eigenes Protokoll halt.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum C (C89 und C99) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten