2012-05-04 1 views
0

Теперь у меня есть еще одна проблема с WCF-сервером/клиентом.Подключенные клиентом WCF-сервер/клиент проверяют значение для сервера

У меня есть метод:

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 идеи, как это CONECT;/ И еще одна проблема в том, как отправить сетку клиенту сравнить значение.

+0

, так что вы планируете отправить запрос «всем» возможным клиентам с сервера и вернуть какое-то значение обратно на сервер - один за другим? –

+0

yes, Мне нужно сделать, судоку, который будет генерировать с использованием клиентов. И сервер вернет созданную сетку. Я не знаю, как по-другому использовать клиентов для решения этой проблемы. – 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 клиентов. Для другого числа клиентов это пока не работает.