A partir de éste tema he resuelto (gracias a los masters del API ) de manera parcial mi desarrollo.
Ahora viene la parte del programa SERVER, con lo que tengo funciona muy bien cuando se recibe un archivo a la vez, la complicación viene cuando llegan varios archivos de forma simultánea o cuando el programa está "ocupado" procesando otro archivo.
¿Como puedo hacer para recibir todos los archivos de forma simultánea ?
Estoy usando el componente TServerSocket y el código es el siguiente.
delphi
procedure TForm1.ServerSocketAccept(Sender: TObject; Socket: TCustomWinSocket); begin Statusbar1.Panels[0].Text := 'Conectando desde: ' + Socket.RemoteAddress; Archivo:= TStringList.Create; Data := ''; Longitud := 0; end; procedure TForm1.ServerSocketClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Statusbar1.Panels[0].Text := 'No hay cliente conectando'; Archivo.Free; end; procedure TForm1.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket); begin ZeroMemory(@Buffer[0], sizeof(Buffer)); uLen := Socket.ReceiveBuf(Buffer,SizeOf(Buffer)); if uLen < 0 then begin uByte := -1; Socket.SendBuf(uByte,1); memo1.Lines.Add( '' ); exit; end else begin Data := Data + string(PChar(@Buffer)); memo1.Lines.add( string(PChar(@Buffer)) ); if uLen < 1024 then begin memo1.Lines.Add( DirRec + Cadena ); Archivo.Text := Data; Archivo.SaveToFile( DirRec + cadena ); uByte := 0; Socket.SendBuf(uByte,sizeof(uByte)); end; end; end;
Como hago para que se generen hilos y evitar los posibles errores.
Saludos y gracias.