Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
В контексте учебной программы задача связана с:
Предмет: Программирование
Раздел: Сетевое программирование, работа с TCP/UDP протоколами в C#. Разработка приложений с пользовательским интерфейсом (UI) на WPF.
Необходимо реализовать чат с пользовательским интерфейсом (WPF) на одном компьютере, который работает через разные порты для каждого пользователя. Чат должен использовать протокол TCP или UDP. Также требуется, чтобы каждый пользователь вводил своё имя перед началом работы.
<!-- XAML Code here -->
MainWindow.xaml.cs
добавим код для работы с UDP:
using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows; namespace UdpChatApp { public partial class MainWindow : Window { private UdpClient udpClient; private int localPort = 11000; private int remotePort = 11001; private IPEndPoint remoteEndPoint; public MainWindow() { InitializeComponent(); StartListener(); } private async void StartListener() { udpClient = new UdpClient(localPort); remoteEndPoint = new IPEndPoint(IPAddress.Loopback, remotePort); try { while (true) { var receivedResults = await udpClient.ReceiveAsync(); string receivedMessage = Encoding.UTF8.GetString(receivedResults.Buffer); Dispatcher.Invoke(() => { txtMessages.AppendText($"{receivedMessage}\n"); }); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Send_Click(object sender, RoutedEventArgs e) { string name = txtName.Text; string message = txtMessage.Text; if (!string.IsNullOrWhiteSpace(name) && !string.IsNullOrWhiteSpace(message)) { string fullMessage = $"{name}: {message}"; var data = Encoding.UTF8.GetBytes(fullMessage); udpClient.Send(data, data.Length, remoteEndPoint); txtMessage.Clear(); } else { MessageBox.Show("Введите имя и сообщение."); } } } }
txtMessages
).localPort
и remotePort
, чтобы каждый экземпляр приложения имел разные значения.Теперь у вас есть простой WPF-чат на C# через протокол UDP, который работает на одном компьютере с использованием разных портов для каждого экземпляра программы.