Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
            }
        }