Bitmap bzw. Grafiken zwischen TClientSocket u. TSeverSocket übertragen.
-
Hallo Zusammen!
Ich habe vor einem halben Jahr ein Chatprogramm fürs LAN programmiert mit einer Kontaktliste. Mittlerweile findet das Programm immer öfters Verwendung auf LAN-Partys, dabei wurden mir ein paar Verbesserungen vorgeschlagen. Ich will das Chatprogramm nun Peer-To-Peer fähig machen (ohne extra Chat-Server). Zusätzlich möchte ich es ermöglichen, dass man bestimmten Benutzern aus der Kontaktliste Screenshots schicken kann, um die Konfiguration im Netzwerk zu erleichtern (Screenshots von Fehlermeldung, Programmeinstellungen, etc.). Da ich jetzt dabei bin das Chat-Programm von Grund auf neu zu programmieren, sind ein paar Fragen aufgetaucht.Ich habe bisher die TClientSocket und TServerSocket Komponenten verwendet.
Dabei ist es meines Wissens nur möglich ASCII-Code zu übertragen.
Muss ich nun die erstellten Screenshots binär als ASCII-Code übertragen?
Wenn ja, wie kann ich die Grafik (Bitmap) binär auslesen?Könnt ihr mir evt. für mein Projekt andere Komponenten empfehlen, die besser geeignet sind für solch ein Vorhaben?
Ich bin für jede Hilfe dankbar.
THX für eure investierte Zeit.
-
Du kannst mit Hilfe der Komponenten TClientSocket und TServerSocket beliebige Daten übertragen. Über die Eigenschaft 'Socket' erhälst du ja ein TWinSocket-Objekt (TClientWinSocket bzw. TServerWinSocket).
Schau dir einfach mal die Hilfe dazu an. Neben SendText/ReceiveText (was du wahrscheinlich bisher nur benutzt hast), gibt es auch noch SendBuf/ReceiveBuf bzw. SendStream/ReceiveStream.
Das einfachste ist es dann, die Grafik im Datei-Format (z.B. BMP oder JPG) zu übertragen.Wie man jedoch eine P2P-Verbindung aufbaut, weiß ich leider nicht...
-
SendBuf() ist schon das richitige Stichwort...
evtl. schaust Du Dir mal die INDY-Komponenten dazu an. Diese werden
recht häufig auch bei größeren oder proffesioneleren Projekten eingesetzt.Was das "Wie" beim Übertragen angeht,... dazu gibt es in der FAQ einen
netten Beitrag. Nichts für 30min Mittagspause aber das Prinzip kommt gut
rüberEin weiteres Stichwort dazu was durchaus hilfreich sein könnte ist
"Protokollentwicklung"