コード例 #1
0
        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);
        }
コード例 #2
0
        // Thread
        private void ListenThread(ClientForm main)
        {
            NetworkStream stream = new NetworkStream(main.clientSocket.Client, false);

            byte[] buffer = new byte[1024];
            while (Thread.CurrentThread.IsAlive)
            {
                int bytesCount = 0;
                try
                {
                    bytesCount = stream.Read(buffer, 0, buffer.Length);
                } catch { }
                if (bytesCount == 0)
                {
                    break;
                }
                string data = Encoding.UTF8.GetString(buffer, 0, bytesCount);

                if (data[0] == 'i')
                {
                    (new Thread(o => InboxReceiveThread(main, data))).Start();//clientInboxWindow, clientInbox, data))).Start();
                }
                else if (data[0] == 's')
                {
                    (new Thread(o => ShellReceiveThread(main, data))).Start();//clientShellWindow, clientShell, data))).Start();
                }
                else if (data == @"!@#$%^&*()_+EXIT!@#$%^&*()_+")
                {
                    (new Thread(o => PartnerLeft('e'))).Start();
                    break;
                }

                else if (data == @"!@#$%^&*()_+DENY!@#$%^&*()_+")
                {
                    (new Thread(o => PartnerLeft('d'))).Start();
                    break;
                }
            }
            stream.Close();
        }
コード例 #3
0
 private void btnClient_Click(object sender, EventArgs e)
 {
     client = new ClientForm(parent);
     client.Show();
     this.Close();
 }
コード例 #4
0
 private void InboxReceiveThread(ClientForm main, string data)//ClientInboxWindow clientInboxWindow, string clientInbox, string data)
 {
     data              = $"Partner: {data.Substring(1)}";
     main.clientInbox += data;
     main.clientInboxWindow.UpdateInbox(data);
 }
コード例 #5
0
 private void ShellReceiveThread(ClientForm main, string data)//ClientShellWindow clientShellWindow, string clientShell, string data)
 {
     data              = data.Substring(3).Replace("\ns/_", "\n");
     main.clientShell += data;
     main.clientShellWindow.UpdateShell(data);
 }