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:
Codigo Receptor: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) { } } }
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; } } }