2012-05-04 277 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位客戶。對於其他數量的客戶端,這還沒有工作。