private void sendMessage_Click(object sender, RoutedEventArgs e) { MessageObject tmpMsg = new MessageObject() { Who = userNameHidden, Type = "text", Data = chattTextBox.Text }; CurrentChatMessages.Add(tmpMsg); db.addToDB(tmpMsg); chattBox.SelectedIndex = CurrentChatMessages.Count - 1; chattBox.ScrollIntoView(chattBox.SelectedItem); try { try { CurrentClient.send_message("{'type': 'message', 'message': '" + chattTextBox.Text + "'}"); } catch (NullReferenceException n) { Console.WriteLine("NullReferenceException: {0}", e); throw new ConnectionException(); } } catch (ConnectionException ce) { Console.WriteLine("connectionException: {0}", ce); System.Windows.MessageBox.Show("Can't send message if not connected", "Connection Error"); } chattTextBox.Text = ""; chattTextBox.Focus(); }
public static void StartListening(object stateInfo) { owner = (MainWindow)stateInfo; TcpListener server = null; try { Int32 port = MainWindow.PortNumber; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); server = new TcpListener(localAddr, port); server.Start(); Byte[] bytes = new Byte[2000000000]; String data = null; while (true) { TcpClient client = server.AcceptTcpClient(); ClientHandler ch = new ClientHandler(client); data = null; NetworkStream stream = client.GetStream(); int i; while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) { data = System.Text.Encoding.UTF8.GetString(bytes, 0, i); dynamic jsonData = JsonConvert.DeserializeObject(data); string returnMsg = ""; RequestHandler(jsonData, ref returnMsg); if (returnMsg != "end") { ch.send_message(returnMsg); } else { break; } } } } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); } catch (Exception e) { server.Stop(); owner.Close(); } finally { server.Stop(); owner.Close(); } }