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"); }
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 = ""; }
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"); }); }
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); } }
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); }); }
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); } }
private void AppendMessage(string message, DateTime on) { ChatTextBox.AppendText(String.Format("[{0}] {1} \n", on.ToShortTimeString(), message)); ChatTextBox.ScrollToEnd(); }
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()); } } } }
private void ChatWriteLine(string message) { ChatTextBox.AppendText(message + Environment.NewLine); }