private void btnJoin_Click(object sender, EventArgs e) { clientSocket = new TcpClient(); try { clientSocket.Connect(Dns.Resolve(serverHost.Text).AddressList, Int32.Parse(serverPort.Text)); } catch { MessageBox.Show("Wrong Room ID or unavailable partner.", "Error"); clientSocket = null; return; } clientShellWindow = new ClientShellWindow(this, clientSocket, btnShell); clientShellWindow.Show(); clientInboxWindow = new ClientInboxWindow(this, clientSocket, btnInbox); clientInboxWindow.Show(); listenThread = new Thread(o => ListenThread(this)); listenThread.Start(); NetworkStream stream = new NetworkStream(clientSocket.Client, false); byte[] buffer = Encoding.UTF8.GetBytes(publicIP); stream.Write(buffer, 0, buffer.Length); stream.Close(); serverPort.Enabled = btnJoin.Enabled = false; btnShell.Enabled = btnInbox.Enabled = btnClose.Enabled = true; }
private void SendInbox(ClientForm parent, ClientInboxWindow main, TcpClient clientSocket) { string data = main.clientInboxInput.Text; Storage.RichTextBoxAppend(main.clientInbox, $"You: {data}"); parent.clientInbox += $"You: {data}"; NetworkStream stream = new NetworkStream(clientSocket.Client, false); byte[] buffer = Encoding.UTF8.GetBytes($"i{data}"); stream.Write(buffer, 0, buffer.Length); stream.Close(); Storage.TextBoxClear(main.clientInboxInput); }
// Func private void __destructor() { if (clientSocket != null) { try { NetworkStream stream = new NetworkStream(clientSocket.Client, false); byte[] buffer = Encoding.UTF8.GetBytes(@"!@#$%^&*()_+EXIT!@#$%^&*()_+"); stream.Write(buffer, 0, buffer.Length); stream.Close(); } catch { } } if (listenThread != null) { listenThread.Abort(); listenThread = null; } if (clientShellWindow != null) { clientShellWindow.Close(); clientShellWindow = null; } if (clientInboxWindow != null) { clientInboxWindow.Close(); clientInboxWindow = null; } if (clientSocket != null) { try { clientSocket.Client.Shutdown(SocketShutdown.Both); } catch { } clientSocket.Close(); clientSocket = null; } }