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是有值的。
为什么我觉得你的顺序有问题,为什么先StartListening然后再注册事件?你把顺序换一下试试。还有一个奇怪的顺序就是,为什么是client先发送数据,服务器才开始启动?
我的发送不是发送给自己,, 我的接收服务也不是接收自己的。是两码事。。 Data是有数据的,问题是 rData=Data;时rData不能赋值。总是为空。
@很明确:
void s_OnMessageReceived(Server sender, byte[] Data) { //这里输出Data rData=Data; //这里输出rData }
我不信Data有值rData没值...
@水牛刀刀: 我也不信Data有值rData没值... 所以才问问。。 呵呵,
@很明确: 你输出一下啊,debug一下。我觉得不可能的。
s_OnMessageReceived看看这个方法是不是被多次执行了?
或者rData在其他地方赋值了