Einzelnen Beitrag anzeigen

MadMax

Registriert seit: 24. Mär 2003
46 Beiträge
 
#1

Indy Netzwerk kartenleser

  Alt 17. Nov 2003, 10:34
Hallo Forum,
Habe eine Netzwerkfähigen Kartenleser geschrieben(wird zum anmelden an eine Programm benötigt). Es werden 3 Befehle über das Netzwerk gelöst (Login, Logout, synchronisieren).

synchronisieren : Verschickt 3 Dateien(Benutzer und Berechtigungen) über das Netzwerk.
Login und Logout : Netzwerkfähiges Account Modul

Problem:
Das synchronisieren und Login/Logout, funktionieren unabhängig voneinander wunderbar, nur wenn sie zusammen genutzt werden treten Fehler auf.

Die Synchronisation soll nur möglich sein wenn sich ein Superuser einlogt.
Logt sich eine Benutzer ein werden diese Information an die anderen Rechner im Netzwerk weitgeleitet.

Also:
Logt sich der Superuser ein und will darauf die Daten synchronisieren funktioniert das nicht.

Muss ich vielleicht 2 Server Threads erzeugen?

Delphi-Quellcode:
procedure TfrmMain.tcpServerExecute(AThread: TIdPeerThread);
Var sClientMsg, Name, Phat : String;
    FileReceiver : TFileReceiver;
begin
  try
    sClientMsg := AThread.Connection.ReadLn(#$A,3500);
    FileReceiver := TFileReceiver.Create(AThread, sClientMsg);
    Name := AThread.Connection.ReadLn;
    Phat := AThread.Connection.ReadLn;

     if sClientMsg = 'loginthen begin
       lbClients.Items.Add(sClientMsg+Name+' '+Phat) ;
        DoLogin(Name, Phat);
    end;
    if sClientMsg = 'logoutthen begin
       lbClients.Items.Add(sClientMsg +Name+' '+Phat) ;
       DoLogout(Name, Phat);
    end;

    try
      if FileReceiver.ServerMsgOK then
         FileReceiver.Start;
      finally
        FileReceiver.Free;
      end;
      except
        AThread.Connection.Disconnect;
      end;
end;
  Mit Zitat antworten Zitat