WCF服务器/客户端连接客户端检查服务器的值

时间:2012-05-04 16:47:34

标签: c# wcf client-server

现在我有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;
        }

我希望将每一个值发送给客户端,他们会检查它并返回true或false给服务器。

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)
                {


                }
            });

我不知道这是多么的结合; / 另一个问题是,如何将网格发送给客户端来比较价值。

1 个答案:

答案 0 :(得分: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个客户端。对于其他数量的客户,这还不行。