Hola, 
 
Espero que puedan ayudarme, 
Estoy haciendo un chat en C# (el lenguaje que estoy aprendiendo a usar) donde se hara una conexion entre red local (colocando X IP para broadcast) y necesito que a la hora de que un usuario mande un mensaje 
con el signo U$, con digitos y la frase dolar o dolares [(por ejemplo U$200, U$100, U$ 58 dolares, etc), los demas usuarios reciban en su chat el mismo valor convertido en otra moneda, es decir: 
X usuario envia: Hola, necesito U$100 dolares
Y usuario recibe: Hola, necesito €88.99 euros 
1 Euro = 1.12 Dolar 
Lo que deberia hacer el programa es detectar cuando un usuario escribe U$, digitos, y la frase "dolar, dolares" al presionar enviar mensaje, y en ese proceso los digitos que van despues de U$ multiplicarlos por un tipo de cambio (el cual podria dejarlo permanente en el codigo del programa, o solicitarselo a los usuarios en un textbox), cambiar el signo de la moneda y cambiar la frase de dolar a euro, o dolares a euros. 
Espero me entiendan y alguien sepa como hacerlo, gracias de antemano. 
Adjunto parte del codigo que tengo (es una tarea), posee el emisor y receptor. 
Codigo Emisor:  
Código:
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net;
using System.Net.Sockets;
namespace Emisor
{
    /// <summary>
    /// Lógica de interacción para MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void btn_enviar_Click(object sender, RoutedEventArgs e)
        {
            txt_chat.Text = txt_chat.Text+ txt_mensaje.Text;
            
            Socket sending_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPAddress send_to_address = IPAddress.Parse(txt_receptor.Text);
            IPEndPoint sending_end_point = new IPEndPoint(send_to_address, 10500);
            byte[] send_buffer = Encoding.ASCII.GetBytes(txt_nickname.Text +" Dice: "+txt_mensaje.Text);
            sending_socket.SendTo(send_buffer, sending_end_point);
            sending_socket.Close();
            txt_mensaje.Text = "";
        }
        private void txt_mensaje_TextChanged(object sender, TextChangedEventArgs e)
        {
        }
        private void txt_color_TextChanged(object sender, TextChangedEventArgs e)
        {
            
        }
    }
}
  Codigo Receptor:  
Código:
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net;
using System.Net.Sockets;
namespace ChatReceptor
{
    
    public partial class MainWindow : Window
    { //VARIABLES COMO ATRIBUTOS DE CLASE
        //variable que define el puerto donde se recivira los chat
        int puerto_escucha = 10000;
        public MainWindow()
        {
            InitializeComponent();
            
        }
        private void btn_escuchar_Click(object sender, RoutedEventArgs e)
        {
            UdpClient escuchador = new UdpClient(puerto_escucha);
            //udpclain=clase que permite trabajar con socket, crea las condiciones para abrir el puero 10000
            IPEndPoint pre_socket = new IPEndPoint(IPAddress.Any, puerto_escucha);
            //Socket: objeto que contiene el socket, direccion ip y puerto unidos en (socket)
            string text_plano;
            byte[] text_en_bytes;
            //dos variables para almacenar text, la segunda: declara un arreglo de tipo byte que es el texto a recivir 
            
                text_en_bytes = escuchador.Receive(ref pre_socket);//iniciar arecivir paquetes y lo almacenas en formato bytes
                // text_plano = text_en_bytes.ToString();//El string convirte la cadena en texto 
                text_plano = Encoding.ASCII.GetString(text_en_bytes, 0, text_en_bytes.Length);
                //Escucha, cuando llegue algo se almacena en texto_en_bytes. se pasa a text_plano con la funcion 
                txtRecepcion.Text = text_plano;
            
        }
    }
}