1

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

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

我有一个包含服务功能的 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;
         }
     }
}

共享DLL

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

有任何想法吗?

4

1 回答 1

0

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

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

于 2013-02-13T09:37:52.833 回答