AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WinSocket Bild versenden

WinSocket Bild versenden

Ein Thema von Tzuxy · begonnen am 13. Nov 2004 · letzter Beitrag vom 14. Nov 2004
Antwort Antwort
Tzuxy

Registriert seit: 17. Aug 2004
51 Beiträge
 
#1

WinSocket Bild versenden

  Alt 13. Nov 2004, 20:29
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
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: WinSocket Bild versenden

  Alt 13. Nov 2004, 20:34
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Tzuxy

Registriert seit: 17. Aug 2004
51 Beiträge
 
#3

Re: WinSocket Bild versenden

  Alt 14. Nov 2004, 12:59
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?
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#4

Re: WinSocket Bild versenden

  Alt 14. Nov 2004, 13:01
Du brauchst auch das Socket.ReceiveBuf-Event
Julian J. Pracht
  Mit Zitat antworten Zitat
Tzuxy

Registriert seit: 17. Aug 2004
51 Beiträge
 
#5

Re: WinSocket Bild versenden

  Alt 14. Nov 2004, 13:55
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz