首页 新闻 搜索 专区 学院

全局变量如何接收委托事件中的值?

0
悬赏园豆:30 [待解决问题]
        public byte[] rData;
        public RemittanceModel CheckRemittance( string bankip, int bankport)
        {
           
            //发送&接收响应
         Client c = new Client();
            c.Connect(bankip, bankport);
            c.SendData(sendByte);

            Server s = new Server(5061);
            s.StartListening();
            s.OnClientConnect += new Server.ClientConnect(s_OnClientConnect);
            s.OnMessageReceived += new Server.MessageReceive(s_OnMessageReceived);
      
            c.Close();
        }

        void s_OnClientConnect(Server sender)
        {

        }     

        void s_OnMessageReceived(Server sender, byte[] Data)
        {           
              rData=Data;
        }
这里的rData总是为null,应该怎么解决能使rData有值。调试时Data是有值的。
很明确的主页 很明确 | 初学一级 | 园豆:156
提问于:2012-05-08 12:42
< >
分享
所有回答(2)
0

为什么我觉得你的顺序有问题,为什么先StartListening然后再注册事件?你把顺序换一下试试。还有一个奇怪的顺序就是,为什么是client先发送数据,服务器才开始启动?

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-05-08 12:49

我的发送不是发送给自己,, 我的接收服务也不是接收自己的。是两码事。。 Data是有数据的,问题是 rData=Data;时rData不能赋值。总是为空。

支持(0) 反对(0) 很明确 | 园豆:156 (初学一级) | 2012-05-08 14:02

@很明确:  

void s_OnMessageReceived(Server sender, byte[] Data)
{ 
      //这里输出Data
      rData=Data;
      //这里输出rData 
}

我不信Data有值rData没值...

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-05-08 14:10

@水牛刀刀:  我也不信Data有值rData没值... 所以才问问。。 呵呵,

支持(0) 反对(0) 很明确 | 园豆:156 (初学一级) | 2012-05-08 14:17

@很明确: 你输出一下啊,debug一下。我觉得不可能的。

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-05-08 14:32
0
s_OnMessageReceived看看这个方法是不是被多次执行了?
或者rData在其他地方赋值了
az235 | 园豆:8283 (大侠五级) | 2012-05-08 15:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册