Thema: Delphi UDP » Dateien versenden

Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

Re: UDP » Dateien versenden

  Alt 2. Sep 2005, 18:22
Hallo erstmal,
warum möchtest du das mit UDP machen?
UDP kümmert sich nämlich nicht darum das die einzelnen Pakete auch da ankommen wo sie hin sollenm und eignet sich damit mehr für Spiele als für Daten (Dateien,Bilder...)
Da kann es dir dann passieren das die hälfte das Bildes, (oder noch schlimmer der Header) nicht ankommt.

Mit TCP geht das auch viel einfacher:

Der Client (Daten Senden):
Delphi-Quellcode:
var MyStream:TMemoryStream;
begin
  mystream := TMemoryStream.Create;
  image1.picture.SaveToStream(myStream);
  ClientSocket.Socket.SendStream(myStream);
.
.
.
  mystream.free;
Der Server (Empfangen):
Delphi-Quellcode:
procedure TServerSocketClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  iLen,tlen: longint;
  Bfr: Pointer;
begin
  if curmemory = nil then curmemory := TMemoryStream.Create;
  curmemory.Seek(0, soFromEnd);
  iLen := Socket.ReceiveLength;
  GetMem(Bfr, iLen);
  try
    tlen := Socket.ReceiveBuf(Bfr^, iLen);
    curmemory.Write(Bfr^, tLen);
  finally
    FreeMem(Bfr);
  end;
end;
Wenn du es trozdem mit UDP machen willst nimm die Indy Kompos. Der Code für den Server sollte der selbe sein.
Andreas
  Mit Zitat antworten Zitat