Exemple #1
0
        private async void MainForm_Load(object sender, EventArgs e)
        {
            await Task.Delay(3000);

            _connection = new HubConnectionBuilder()
                          .WithUrl("http://localhost:5000/hub")
                          .Build();

            _connection.On <int, int, int>("ReceiveKeys", async(q, a, yb) =>
            {
                var xc = DiffieHellmanService.GetX(q);
                var yc = DiffieHellmanService.GetY(a, xc, q);
                _key   = DiffieHellmanService.GetKey(yb, xc, q);

                await _connection.InvokeAsync("ReceiveKey", (int)yc);

                UserNameTextBox.Enabled = true;
                MessageTextBox.Enabled  = true;
                SendButton.Enabled      = true;
            });

            _connection.On <string, string>("Chat", (name, message) =>
            {
                ChatTextBox.Font = new Font(ChatTextBox.SelectionFont, FontStyle.Bold);
                ChatTextBox.AppendText($"{name}: {message}");
                ChatTextBox.AppendText("\n");
            });

            await _connection.StartAsync();

            await _connection.InvokeAsync("GetKeys");
        }
Exemple #2
0
 private void SendButton_Click(object sender, EventArgs e)
 {
     for (int j = 0; j < ClientSocket.Count; j++)
     {
         {
             Sendata(ClientSocket[j].SocketClient, SendTextBox.Text);
         }
     }
     ChatTextBox.AppendText("Server: " + SendTextBox.Text + "\r\n");
     SendTextBox.Text = "";
 }
Exemple #3
0
 private void Client_OnMessageSent(object sender, TwitchLib.Events.Client.OnMessageSentArgs e)
 {
     OutputTextBox.Invoke((MethodInvoker) delegate
     {
         OutputTextBox.AppendText($"[{e.SentMessage.UserType}] {USER}: {e.SentMessage.Message}\n");
     });
     ChatTextBox.Invoke((MethodInvoker) delegate
     {
         ChatTextBox.AppendText($"[{e.SentMessage.UserType}] {USER}: {e.SentMessage.Message}\n");
     });
 }
Exemple #4
0
        private void AppceptCallback(IAsyncResult ar)
        {
            Socket socket = serverSocket.EndAccept(ar);

            ClientSocket.Add(new SocketT2h(socket));
            listBox1.Items.Add(socket.RemoteEndPoint.ToString());
            ChatTextBox.Text = "Clients connedced to this server: " + ClientSocket.Count.ToString();
            string clientIPAddress = ("New IP Address is Connected: ") + (IPAddress.Parse(((IPEndPoint)socket.RemoteEndPoint).Address.ToString())) + ("\r\n");

            ChatTextBox.AppendText(clientIPAddress);
            socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
            serverSocket.BeginAccept(new AsyncCallback(AppceptCallback), null);
        }
 private void ChatServiceOnReceived(string sender, string message)
 {
     if (ChatTextBox.InvokeRequired)
     {
         var callback = new SetTextCallback(ChatServiceOnReceived);
         Invoke(callback, new object[] { sender, message });
     }
     else
     {
         var chatMessage = string.Format("{0}: {1}{2}", sender, message, Environment.NewLine);
         ChatTextBox.AppendText(chatMessage);
     }
 }
Exemple #6
0
 private async void Listen()
 {
     await Task.Run(() =>
     {
         byte[] buffer = new byte[1024];
         do
         {
             ClientSocket.Receive(buffer);
             ChatTextBox.SelectionColor = Color.Blue;
             ChatTextBox.AppendText($"{Encoding.UTF8.GetString(buffer)}");
             ChatTextBox.AppendText(string.Format("\n"));
         } while (true);
     });
 }
Exemple #7
0
        private void ReceiveCallback(IAsyncResult ar)
        {
            Socket socket = (Socket)ar.AsyncState;

            if (socket.Connected)
            {
                int received;
                try
                {
                    received = socket.EndReceive(ar);
                }
                catch (Exception)
                {
                    for (int i = 0; i < ClientSocket.Count; i++)
                    {
                        if (ClientSocket[i].SocketClient.RemoteEndPoint.ToString().Equals(socket.RemoteEndPoint.ToString()))
                        {
                            ClientSocket.RemoveAt(i);
                            ChatTextBox.Text = "Clients connected to this server: " + ClientSocket.Count.ToString();
                        }
                    }
                    return;
                }
                if (received != 0)
                {
                    byte[] dataBuf = new byte[received];
                    Array.Copy(buffer, dataBuf, received);
                    string text = Encoding.ASCII.GetString(dataBuf);
                    ChatTextBox.AppendText("Client: " + text + "\r\n");
                    string repomse = string.Empty;
                    if (text.Contains("@@"))
                    {
                        for (int i = 0; i < listBox1.Items.Count; i++)
                        {
                            if (socket.RemoteEndPoint.ToString().Equals(ClientSocket[i].SocketClient.RemoteEndPoint.ToString()))
                            {
                                listBox1.Items.RemoveAt(i);
                                listBox1.Items.Insert(i, text.Substring(1, text.Length - 1));
                                ClientSocket[i].ClientName = text;
                                socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
                                return;
                            }
                        }
                    }
                }
                socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
            }
        }
Exemple #8
0
 private void AppendMessage(string message, DateTime on)
 {
     ChatTextBox.AppendText(String.Format("[{0}] {1} \n", on.ToShortTimeString(), message));
     ChatTextBox.ScrollToEnd();
 }
Exemple #9
0
 void Receive()
 {
     lock (receivedMessageLock)
     {
         while (true)
         {
             try
             {
                 byte[] receivedMessage = new byte[256];
                 serverStream.Read(receivedMessage, 0, receivedMessage.Length);
                 string receivedMessageString = Encoding.ASCII.GetString(receivedMessage);
                 ChatTextBox.BeginInvoke((System.Windows.Forms.MethodInvoker) delegate() { ChatTextBox.AppendText(receivedMessageString); });
                 ResetForm();
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.ToString());
             }
         }
     }
 }
Exemple #10
0
 private void ChatWriteLine(string message)
 {
     ChatTextBox.AppendText(message + Environment.NewLine);
 }