private void button1_Click(object sender, EventArgs e) { if (button1.Text == "Connect") { _nick = nick.Text; _port = Int32.Parse(port.Text); channel = new TcpChannel(_port); RemotingServices.Marshal(_clientService, _nick, typeof(ClientService)); ChannelServices.RegisterChannel(channel, false); service = (IServerServices)Activator.GetObject(typeof(IServerServices), "tcp://localhost:7777/MyService"); service.registerClient(_nick, "tcp://localhost:" + _port + "/" + _nick); button1.Text = "Disconnect"; appendMessage("-> Connected <-"); nick.Enabled = false; port.Enabled = false; button2.Enabled = true; message.Enabled = true; } else { service.close(_nick); service = null; button1.Text = "Connect"; nick.Enabled = true; port.Enabled = true; conversation.Clear(); message.Clear(); message.Enabled = false; button2.Enabled = false; channel.StopListening(null); RemotingServices.Disconnect(this); ChannelServices.UnregisterChannel(channel); channel = null; } }