Thema: Delphi Problem mit WinSockets

Einzelnen Beitrag anzeigen

Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#1

Problem mit WinSockets

  Alt 22. Mär 2004, 21:42
Hallo,

ich habe ein PRoblem mit den Sockets...
Ich sende über ein ClientSocket ein JPEG-Bild an einen Serversocket.
Jedoch wird nur bei jedem 2. Aufruf des sendens tatsächlich ein bild übertragen.
ich hab kA wieso

Mein Client-Code:
Code:
   
MS := TMemoryStream.Create;
    try
// JPEG erstelleb etc...
    jpg.SaveToStream(ms);
    MS.Position := 0;
    clientsocket2.Open;
    application.processmessages;
    clientsocket2.Socket.SendBuf(MS.Memory^, MS.Size);
    application.processmessages;
    clientsocket2.Close;
    bmp.Free;
    jpg.Free;
  finally
    MS.Free;
  end;
Der Server-Code
Code:


 type TReceiveThread = class(TServerClientThread)
  protected
    procedure Execute; override;
  end;

procedure TReceiveThread.Execute; // DIESE PROZEDUR WIRD NUR JEDES 2. MAL AUFGERUFEN...
var
  WS: TWinSocketStream;
  MS: TMemoryStream;
  GetSize: Integer;
  Buffer: array[0..8191] of Char;
  jpg : TJpegImage;
  bmp : Tbitmap;
begin

  MS := TMemoryStream.Create;
  try
    while (not Terminated) and ServerSocket.Connected do
    begin
      WS := TWinSocketStream.Create(ClientSocket, 500);
      try
        if WS.WaitForData(60000) then
        begin
          GetSize := WS.Read(Buffer, SizeOf(Buffer));
          while (GetSize > 0) do
          begin
            MS.Write(Buffer, GetSize);
            GetSize := WS.Read(Buffer, SizeOf(Buffer));
          end;
          MS.Position := 0;
         jpg := TJPEGImage.Create;
          jpg.LoadFromStream(ms);
           terminate
        end;
      finally
        WS.Free;
      end;
    end;
  finally
    MS.Free;
  end;
end;


procedure TForm1.ServerSocket2GetThread(Sender: TObject;
  ClientSocket: TServerClientWinSocket;
  var SocketThread: TServerClientThread);
begin

  SocketThread := TReceiveThread.Create(False, clientSocket);

end;
ich hoffe, einer weiß es!

grüße
dk
Florian Heft
  Mit Zitat antworten Zitat