Ganze Tabelle über Socket senden - String oder Byte[] ?



  • Hallo,

    ich möchte über einen Socket eine ganze Tabelle aus der Datenbank über einen Socket schicken.

    Ich lese die Tabelle z.B. in ein XML Dokument ein und will es dann schicken.

    Was wäre die beste Lösung um über ein Socket solch eine Tabelle zu schicken.

    Ist es sicher und stabil wenn ich einfach den XML Inhalt in String Form über den Socket schicke. Oder sollte ich das lieber teilweise machen, also z.B. immer nur alle 2kb schicken/empfangen.

    Ist sowas im allgemeinen OK wenn man auf einen Schlag 50KB einfach rausschickt und diese direkt einliest. Weil ich bisher immer nur sehe, das Leute in ihren Projekte den byte-Buffer nur auf z.B. 1024 Bytes initialisieren und dementsprechend nur so viel lesen.

    Wie sollte man das dann am besten handhaben bei so großen Daten.

    Die Frage gilt hier auch, ob man einfach als String senden soll (XML-Format) oder das ganze serialisieren und im byte Format schicken.



  • Das liegt daran weil es einen Internen Socketpuffer gibt der die Daten in einzelne Blöcke aufteilt.

    MTU nennt sich das.



  • XML ist doch ein standardisiertes Format. Das muss man nicht mehr serialisieren. 🙄

    Wenn du TCP benutzt, dann schreib einfach alles zum Kernel rüber. Der kümmert sich um das weitersenden und aufteilen. Im Grunde ist es sogar besser mit einem Aufruf mehr Daten zu senden, da du nur einen Kontextswitch benötigst.


Log in to reply