JPG-Datei über TClientSocket an TServerSocket senden

  • Themenstarter Themenstarter DoMiNaToR_xD
  • Beginndatum Beginndatum
D

DoMiNaToR_xD

Hi Leute,

ich möchte wie im Titel schon genannt eine JPG-Datei mit dem TClientSocket and den T ServerSocket senden und kriege es einfach nicht hin. Habe schon die verschiedensten dinge versucht aber nichts hat funktioniert, kann mir jemand helfen und sagen wie ich es anstelle solch eine Aktion zu bewältigen, da ich bis jetzt nichts brauchbares in den Foren und Google gefunde habe, bitte bin auf Hilfe angewiesen.
 
Habe schon die verschiedensten dinge versucht aber nichts hat funktioniert.
Die Fehlerbeschreibung ist recht unpräzise; da solltest du schon genauer werden. Funktioniert denn die Kommunikation grundsätzlich, also etwa mit einfachen Strings? Du solltest beachten, das du bei einer JPG-Datei binäre Daten überträgst.

Gruß
MCoder
 
Kein Fehler

Dies ist kein Fehler sondern ich weis nicht wie ich dies machen soll. Der stand ist der das eine NonBlocking Verbindung besteht, welche jedoch nur vom Server zum Client String schicken kann. ´Wenn ich eine Klocking Verbindung wähle weis ich nicht wie Komunikation funktioniert. ich brauche ein gut beschriebenes Beispiel an welches ich mich wenden könnte, aber ich habe nix brauchbares gefunden.
 
Wie das im Detail mit den Borland-Socketfunktionen funktioniert, kann ich dir leider nicht sagen.

Grundsätzlich einmal muss es beim Server eine listen()-Funktion geben, nach dessen Aufruf er am festgelegten Port auf eingehende Verbindungen wartet. Eine eingehende Verbindung wird mit einer accept()-Funktion angenommen. Bei einem Non-Blocking-Socket muss accept() in einer permanenten Schleife aufgerufen werden. Liefert accept() einen gültigen Connection-Socket, können dann mit der recv()-Funktion die Daten gelesen und anschließend ggf. mit der send()-Funktion eine Antwort an den Client geschickt werden.

Beim Client ist es noch einfacher: Mit der connect()-Funktion wird die Verbindung zum Server aufgebaut und über den dabei erhaltenen Socket werden dann die Daten mit send() geschickt und anschließend ggf. mit recv() die Antwort des Servers entgegengenommen.

Wie die Funktionen nun bei TClientSocket und TServerSocket aussehen, müsstest du mal in der Referenz dazu nachschauen, aber das von mir skizzierte Prinzip ist allgemeingültig für die Socket-Programmierung und sollte sich auch bei Borland so in etwa wiederfinden lassen.

Gruß
MCoder
 
Ja ich habe Funktionen gefunden aber ich scheine immer noch etwas falsch zu machen


int x=Socket->ReceiveLength();

BYTE *buffer=new BYTE[x];
for(int i=x;i>0||i!=-1;i++)
{
i=i-Socket->ReceiveBuf(buffer,Socket->ReceiveLength());
}
delete []buffer;

Ich weis net was der Fehler noch sein könnte ich raffs einfach net*heul*
 
Zurück