Announcement

Collapse
No announcement yet.

C++ Builder Beispiel "Chat" erweitern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C++ Builder Beispiel "Chat" erweitern

    Hallo,<br>
    ich möchte das Internet-Beispiel "Chat" des C++Builders um die Funktion erweitern Bilder zu senden und zu empfangen. Gibt es irgendeine Möglichkeit ein Bild (z.B. jpg) in einen Text umzuwandeln und diesen auf der anderen Seite der Leitung wieder als Bild anzuzeigen?<br><br>

    Danke im Vorraus<br>
    Moritz

  • #2
    Man kann natürlich jeden Hexwert in einer Datei (*.jpg) als ASCII umwandeln und senden. Das ist aber wohl unnötig.

    Mit SendBuf sollte es gehen:

    Die Methode SendBuf schreibt Count Bytes aus dem Parameter Buf in die Socket-Verbindung.

    int __fastcall SendBuf(void *Buf, int Count);

    Beschreibung

    Verwenden Sie SendBuf, um in eine Socket-Verbindung zu schreiben. Rufen Sie diese Methode aus der Ereignisbehandlungsroutine OnSocketEvent eines Windows-Socket-Objekts oder aus der Ereignisbehandlungsroutine für OnWrite bzw. OnClientWrite einer Socket-Komponente auf. Wenn eine Verbindung gerade hergestellt wurde und der Socket keine Botschaft erwartet, daß der Socket am anderen Ende der Verbindung auf das Lesen wartet, verwenden Sie SendBuf zum Schreiben.

    Bei nicht-blockierenden Sockets werden die Daten an die WinSock DLL gesendet, die über eigene interne Puffer verfügt. Wenn WinSock weitere Daten akzeptieren kann, gibt SendBuf sofort die Anzahl der Byte in der Warteschlange zurück. Wenn der interne Puffer von WinSock den gesendeten Puffer nicht mehr aufnehmen kann, gibt SendBuf -1 zurück, und es werden keine Daten in die Warteschlange übernommen. In diesem Fall müssen Sie etwas warten, bis WinSock die sich bereits in der Warteschlange befindlichen Daten gesendet hat und es dann erneut versuchen.

    Bei nicht-blockierenden Sockets gibt SendBuf die Anzahl der tatsächlich geschriebenen Bytes zurück.

    Falls während des Schreibens in die Verbindung ein Fehler auftritt, beendet SendBuf die Verbindung und löst eine ESocketError-Exception aus
    Christian

    Comment


    • #3
      Danke erstmal.<br>
      Ich kann mit der C++Builder Hilfe nur leider nicht viel anfangen. Könntest du mir vielleicht ein Stück Code geben?<br><br>

      Gruß Morit

      Comment


      • #4
        Warum kannst du mit der Hilfe nichts anfangen???

        Code habe ich nich
        Christian

        Comment


        • #5
          Was soll ich zum Beispiel als ersten Parameter angeben? Ich verstehe nicht, weshalb der Typ dieses Parameter void ist

          Comment


          • #6
            der 1. Parameter ist der Buffer der gesendet werden soll, also der Inhalt, deine JPG-Datei.

            Er ist deshalb void, weil die ein Zeiger ist und dieser Zeiger ein Typ sein kann, der verschieden sein könnten.

            Mit der Angabe void kann ein beliebiger Zeiger genutzt werden und nicht bsp, nur einer vom Typ HBITMAP um Bilderdaten zu senden
            Christian

            Comment


            • #7
              Danke, jetzt hab ichs kapiert

              Comment

              Working...
              X