Changeset 2214 for trunk/CrypPlugins


Ignore:
Timestamp:
Dec 16, 2010, 8:12:05 PM (11 years ago)
Author:
Sven Rech
Message:

keysearcher

Location:
trunk/CrypPlugins/KeySearcher
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/KeySearcher.cs

    r2202 r2214  
    247247        private EndPoint externalClientConnected;
    248248        private AutoResetEvent waitForExternalClientToFinish = new AutoResetEvent(false);
     249        private DateTime assignTime;
    249250        #endregion
    250251
     
    760761                    externalClientConnected = null;
    761762                    cryptoolServer.Port = settings.Port;
    762                     cryptoolServer.OnJobCompleted += new CryptoolServer.JobCompletedDelegate(server_OnJobCompleted);
    763                     cryptoolServer.OnClientConnected += new CryptoolServer.ClientConnectedDelegate(server_OnClientConnected);
    764                     cryptoolServer.OnClientDisconnected += new CryptoolServer.ClientDisconnectedDelegate(cryptoolServer_OnClientDisconnected);
     763                    cryptoolServer.OnJobCompleted += server_OnJobCompleted;
     764                    cryptoolServer.OnClientConnected += server_OnClientConnected;
     765                    cryptoolServer.OnClientDisconnected += cryptoolServer_OnClientDisconnected;
    765766                    serverThread = new Thread(new ThreadStart(delegate
    766767                                                                      {
     
    783784                {
    784785                    //stop server here!
     786                    serverThread.Interrupt();
     787                    cryptoolServer.OnJobCompleted -= server_OnJobCompleted;
     788                    cryptoolServer.OnClientConnected -= server_OnClientConnected;
     789                    cryptoolServer.OnClientDisconnected -= cryptoolServer_OnClientDisconnected;
    785790                }
    786791            }
     
    10291034            j.Size = externalKeyTranslator.GetOpenCLBatchSize();
    10301035            j.ResultSize = 10;
     1036            GuiLogMessage(string.Format("Assigning new job with Guid {0} to client!", j.Guid), NotificationLevel.Info);
    10311037            cryptoolServer.SendJob(j, client);
     1038            assignTime = DateTime.Now;
    10321039        }
    10331040
    10341041        void server_OnJobCompleted(System.Net.EndPoint client, JobResult jr)
    10351042        {
     1043            GuiLogMessage(string.Format("Client returned result of job with Guid {0}!", jr.Guid), NotificationLevel.Info);
    10361044            //check:
    10371045            var op = this.costMaster.getRelationOperator();
     
    10511059
    10521060            //progress:
    1053             externalKeysProcessed += externalKeyTranslator.GetProgress();
    1054             showProgress(costList, pattern.size(), externalKeysProcessed, 1);
     1061            externalKeyTranslator.NextOpenCLBatch();
     1062            int progress = externalKeyTranslator.GetProgress();
     1063            externalKeysProcessed += progress;
     1064            int keysPerSec = (int)(progress / (DateTime.Now - assignTime).TotalSeconds);
     1065            showProgress(costList, pattern.size(), externalKeysProcessed, keysPerSec);
    10551066
    10561067            if (externalKeysProcessed != pattern.size())
  • trunk/CrypPlugins/KeySearcher/Server/Job.cs

    r2208 r2214  
    2222public class JobResult : JobBase
    2323{
    24     public SortedDictionary<float, int> ResultList {get;set;}
     24    public List<KeyValuePair<float, int>> ResultList {get;set;}
    2525}
  • trunk/CrypPlugins/KeySearcher/Server/Server.cs

    r2208 r2214  
    2727    public void Run()
    2828    {
    29         var tcpListener = new TcpListener(IPAddress.Any, Port);
    30         tcpListener.Start();
    31         Console.WriteLine("Listening for client on port "+Port);
    32         while(true)
     29        TcpListener tcpListener = null;
     30        try
    3331        {
    34             TcpClient client = tcpListener.AcceptTcpClient();
    35             Console.WriteLine("Got connection from "+client);
    36             lock(connectedClients)
     32            tcpListener = new TcpListener(IPAddress.Any, Port);
     33            tcpListener.Start();
     34            Console.WriteLine("Listening for client on port " + Port);
     35            while (true)
    3736            {
    38                 connectedClients.Add(client.Client.RemoteEndPoint, client);
     37                TcpClient client = tcpListener.AcceptTcpClient();
     38                Console.WriteLine("Got connection from " + client);
     39                lock (connectedClients)
     40                {
     41                    connectedClients.Add(client.Client.RemoteEndPoint, client);
     42                }
     43                Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClient));
     44                clientThread.Start(client);
    3945            }
    40             Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClient));
    41             clientThread.Start(client);
    4246        }
     47        catch (ThreadInterruptedException)
     48        {
     49        }
     50
     51        tcpListener.Stop();
     52        foreach(var client in connectedClients)
     53            client.Value.Close();
    4354    }
    44 
    45 
     55   
    4656    public void SendJob(JobInput j, EndPoint i)
    4757    {
     
    91101                        {
    92102                            var jobGuid = wrapped.ReadString();
    93                             var resultList = new SortedDictionary<float, int>();
     103                            var resultList = new List<KeyValuePair<float, int>>();
    94104                            var resultListLength = wrapped.ReadInt();
    95105                            for (int c = 0; c < resultListLength; c++)
     
    97107                                var key = wrapped.ReadInt();
    98108                                var cost = wrapped.ReadFloat();
    99                                 resultList.Add(cost, key);
     109                                resultList.Add(new KeyValuePair<float, int>(cost, key));
    100110                            }
    101111
Note: See TracChangeset for help on using the changeset viewer.