Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WinSocket Bild versenden (https://www.delphipraxis.net/33858-winsocket-bild-versenden.html)

Tzuxy 13. Nov 2004 20:29


WinSocket Bild versenden
 
Hy liebe Delphianer,
ich habn Netzwerkprogramm geschrieben und möchte nun mit den WinSockets gerne ein Bild übertragen. Leider kommt immer nur ein Bild mit 0kb an. Was ist das los
Habn schon das ganze Forum umgepflügt, aber nichts gefunden...
Hier der Quellcode:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    Image2: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
FStream : Tfilestream;
begin
 FStream := TFileStream.Create('C:\Dokumente und Einstellungen\MattiVsRob\Desktop\tele3.bmp', fmOpenRead);
clientsocket1.Socket.SendStream(FStream);


end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);

var
stream:Tfilestream;
begin
stream.free ;
Stream := TFileStream.Create('C:\Dokumente und Einstellungen\MattiVsRob\Desktop\tele100.bmp', fmCreate or fmOpenWrite);


end;

end.

Alles klar

bis denn dann

robert

alcaeus 13. Nov 2004 20:34

Re: WinSocket Bild versenden
 
Hi Tzuxy,

im ServerSocket1ClientRead-Ereignis musst du noch Delphi-Referenz durchsuchenSocket.ReadStream ausführen, sonst wird nichts ausgelesen.
Außerdem muss der Stream auch wieder geschlossen werden.

Greetz
alcaeus

Tzuxy 14. Nov 2004 12:59

Re: WinSocket Bild versenden
 
Der Servesocket kennt diese Prozedur aber nicht. Es gibt dor kein socket.readstream?
was soll ich dann machen?
Ich möchte eigentlich bloß n kleines Chatprog schreibe, mit dem man Text und Bilder verschicken kann. Welche Sockets sind denn dafür noch gut geeignet?

Ultimator 14. Nov 2004 13:01

Re: WinSocket Bild versenden
 
Du brauchst auch das Socket.ReceiveBuf-Event ;-)

Tzuxy 14. Nov 2004 13:55

Re: WinSocket Bild versenden
 
So hab das ma versucht. keine fehlermeldung, aber wird nichts übrtragen
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Button2: TButton;
    Image2: TImage;
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ServerSocket1Accept(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);

var
FStream : Tfilestream;
begin
FStream := TFileStream.Create('C:\Dokumente und Einstellungen\MattiVsRob\Desktop\maus.jpg', fmOpenRead);
clientsocket1.Socket.SendStream(FStream);


end;

procedure TForm1.ServerSocket1Accept(Sender: TObject;
  Socket: TCustomWinSocket);

 var
stream:Tfilestream;
begin

serversocket1.Socket.ReceiveBuf(stream, 1);
Stream := TFileStream.Create('C:\Dokumente und Einstellungen\MattiVsRob\Desktop\maus1.jpg', fmCreate or fmOpenWrite);
stream.free ;
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz