2012-05-04 272 views
0

检查值现在我有一个WCF的服务器/客户端的另一个问题。WCF的服务器/客户端conected客户服务器

我有一个方法:

bool spr_wiersz(int wiersz, int kolumna) //check_row(int row, int column) 
     { 
      for (int i = 0; i < 9; i++) 
      { 
       if (i != kolumna) 
       { 
        //if(grid(row,i)==grid[row,column] 
        if (tablica[wiersz, i] == tablica[wiersz, kolumna]) 
         return false; 
       } 
      } 
      return true; 
     } 

我想发送的每一个价值给客户,他们将检查和服务器返回真,还是假的。

ex. 
client 1 compare for i=0 
client 2 compare for i=1 
client 3 compare for i=2 
client 1 compare for i=3 
client 2 compare for i=4 
...... 

送东西给我用大家的客户:

subscribers.ForEach(delegate(ImessageCallback callback) 
      { 
       if (((ICommunicationObject)callback).State == CommunicationState.Opened) 
       { 


       } 
      }); 

我hevan't任何想法如何瞬移这一点;/ 而另一个问题是,如何发电网客户端比较值。

+0

所以你打算从服务器发送请求“所有”可能的客户并检索一些值回服务器 - 一个接一个? –

+0

是, 我需要做的,数独,这将是使用生成的客户端。并且服务器将返回生成的网格。我不知道如何以另一种方式使用客户来解决这个问题。 – user1031034

回答

0

我解决这个问题:) 几乎正常工作。

bool spr_wiersz(int wiersz, int kolumna) 
     { 
      wys_tab(); 
      Console.WriteLine("wiersz: {0}, kolumna: {1}", wiersz, kolumna); 
      int i_wiersz=0; 
      bool[] result = new bool[9]; 
      while (i_wiersz < 9) 
      { 
       subscribers.ForEach(delegate(ImessageCallback callback) 
       { 
        if (((ICommunicationObject)callback).State == CommunicationState.Opened) 
        { 
         Console.WriteLine("wiersz: {0}, kolumna: {1}, i: {2}", wiersz, kolumna, i_wiersz); 
         result[i_wiersz] = callback.spr_wiersz(wiersz, kolumna, i_wiersz); 
         i_wiersz++; 
        } 
       }); 
       for (int j = 0; j < i_wiersz; j++) 
       { 
        if (result[j] == false) 
        { 
         return false; 

        } 
       } 

      } 
      return true; 
     } 

这只适用于1,3或9位客户。对于其他数量的客户端,这还没有工作。