Autor Beitrag
FrEaKY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 235


D7
BeitragVerfasst: Sa 22.05.04 12:32 
Hi

ich schreibe ein Prog wo sich TSimpleTCpServer udn TSimpleTCPCLient mit bildern austauschen. Das connecten funktioniert auch wunderbar nur beim versenden des Bildes krieg ich ne Exception der Klasse EAccesViolation . Meldung: Zugriffsverletzung bei Addresse 004720AE im Modul Project1.exe.
Hier der code beim Server der das Bild schickt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure Tform1.Sendpic(jpg:TJPEGImage);
 var MS:TStream;    tmpclient:tsimpletcpclient;
 begin
 try
   MS := TMemoryStream.Create;
   jpg.CompressionQuality := 80;
   jpg.Compress;
   jpg.SaveToStream(MS);
   Label5.Caption := 'Bytes:'+#10#13+IntToStr(MS.Size);
   Server.SendStream(tmpclient,MS);
 finally
   MS.Free;
 end;
 end;

und hier vom Clienteb wenn er es empfängt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.clientRead(Sender: TObject; Stream: TStream);
  var jpg:TJPEGImage;  
   begin  
   try
    jpg := TJPEGImage.Create;
    jpg.LoadFromStream(Stream as TMemoryStream);
    Image2.Picture.Bitmap.Assign(jpg);
   finally  
   jpg.Free;  
   end;
   end;

hoffe mir kann jemand helfen thx
FrEaKY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 235


D7
BeitragVerfasst: So 23.05.04 19:53 
Warum antwortet denn niemand :crying:
Philer
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 79

Win XP Home
D7 Enterprise
BeitragVerfasst: So 23.05.04 20:08 
Also gut...
Du hast einfach den temp. client nicht zugewiesen..

Hier der Server: (Beispiel)[/code]

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);
var Tmp: TSimpleTCPClient; MS:TMemoryStream;
begin
IF not OpenDialog1.Execute THen exit;
try
    // PIC INS STREAM LADEN
  MS := TmemoryStream.Create;
  MS.LoadFromFile(OpeNDialog1.FileName);
   // AN DEN ERSTEN CLIENT SENDEN
  IF Server1.Connections.Count <> 0 THEN
        BEGIN
          TMP := Server1.Connections[0];
          Server1.SendStream(TMP,MS);
        END;
finally
  MS.Free;
end;
end;


Und der Client: Den hast du richitg gemacht :D


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Client1Read(Sender: TObject; Stream: TStream);
  var jpg:TJPEGImage;
   begin
   try
    jpg := TJPEGImage.Create;
    jpg.LoadFromStream(Stream as TMemoryStream);
    Image1.Picture.Bitmap.Assign(jpg);
   finally
   jpg.Free;
   end;
end;

_________________
- Delphi n00b -
-Philer teh thriller-