public void StopListen() { if (mi_Service != null) { RemotingServices.Unmarshal(mi_Service); } if (mi_Transfer != null) { RemotingServices.Disconnect(mi_Transfer); } if (mi_Channel != null) { ChannelServices.UnregisterChannel(mi_Channel); } mi_Service = null; mi_Transfer = null; mi_Channel = null; }
public void StartListen() { StopListen(); // if there is any channel still open --> close it try { int s32_Port = int.Parse(textBoxPort.Text); mi_Channel = new TcpChannel(s32_Port); ChannelServices.RegisterChannel(mi_Channel, false); mi_Transfer = new Remotе.cTransfer(); mi_Service = RemotingServices.Marshal(mi_Transfer, "TestService"); mi_Transfer.ev_SlaveCall += new Remotе.cTransfer.del_SlaveCall(OnMasterEvent); } catch (Exception Ex) { MessageBox.Show(this, "Error starting listening:\n" + Ex.Message, "Slave"); checkBoxListen.Checked = false; // calls StopListen() } }
private void btnSend_Click(object sender, EventArgs e) { Remotе.kAction k_Action = new Remotе.kAction(); k_Action.s_Command = textBoxMessage.Text; k_Action.s_Computer = Environment.MachineName; this.Cursor = Cursors.WaitCursor; string s_URL = string.Format("tcp://{0}:{1}/TestService", textBoxComputer.Text, textBoxPort.Text); try { mi_Transfer = (Remotе.cTransfer)Activator.GetObject(typeof(Remotе.cTransfer), s_URL); Remotе.kResponse k_Response = mi_Transfer.CallSlave(k_Action); textBoxAnswer.Text = "Answer from Slave:\r\n" + k_Response.s_Result; } catch (Exception Ex) { MessageBox.Show(this, "Error sending message to Slave:\n" + Ex.Message, "Master Error"); } this.Cursor = Cursors.Arrow; mi_EraseTextTimer.Start(); }