在客户端和服务器之间共享变量c#

时间:2013-02-13 09:33:46

标签: c# client-server ipc

我有客户端和服务器应用程序。 服务器计算从客户端接收的命令数。 我希望与客户分享这个号码。

客户端没有服务器实例......

我有一个dll,它包含服务功能,并且正由服务器和客户端使用。 因此,我尝试使用set属性在服务器端保存该数字,然后使用客户端的get属性来获取该数字。

我总是得到0 ......

这是我的代码:

服务器端:

 private void clientReceived(Client sender, byte[] data)
 {
      try
      {
          Invoke((MethodInvoker)delegate
          {
              SharedDll.NumOfSentTests = 5;
          }
      }
 }

客户端:

private void clientReceived(Client sender, byte[] dataReceived)
{
     try
     {
         Invoke((MethodInvoker)delegate
         {
             m_numOfSentTests = SharedDll.NumOfSentTests;
         }
     }
}

的SharedDLL

public static int NumOfSentTests
{
    get { return SharedDll.m_numOfSentTests; }
    set { SharedDll.m_numOfSentTests = value; }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用相同DLL的两个不同进程 共享任何状态。每个进程都有自己的DLL对象副本。

您需要向服务器添加另一个命令 - 一个返回命令数的命令。客户端可以像使用其他命令一样使用它。