Клиент-серверное приложение на сокетах TCP. Умножение матрицы на матрицу - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Нужно создать клиент-серверное приложение, с помощью которого реализуется умножение матрицы на матрицу. Массивы матриц задаются в клиенте, потом данные передаются серверу, на котором и происходит само вычисление (умножение). Помогите, пожалуйста, разобраться. Никак не могу понять: как передать массивы с клиента серверу и после получить результат в клиенте.

Решение задачи: «Клиент-серверное приложение на сокетах TCP. Умножение матрицы на матрицу»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3. using System.Net.Sockets;
  4.  
  5. namespace ConsoleApplication198
  6. {
  7.     class Program
  8.     {
  9.         static void Main()
  10.         {
  11.             var matrix1 = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
  12.             var matrix2 = new int[3, 3] { { 11, 12, 13 }, { 14, 15, 16 }, { 17, 18, 19 } };
  13.             var result = new int[3,3];
  14.  
  15.             //создаем сокет
  16.             var client = new TcpClient();
  17.             //коннектимся к серверу
  18.             client.Connect("localhost", 32333);
  19.             //отправляем данные
  20.             using (var stream = client.GetStream())
  21.             using (var bw = new BinaryWriter(stream))
  22.             using (var br = new BinaryReader(stream))
  23.             {
  24.                 //отправлем размер матриц
  25.                 bw.Write(matrix1.GetLength(0));
  26.                 //отправляем матрицы
  27.                 SendMatrix(bw, matrix1);
  28.                 SendMatrix(bw, matrix2);
  29.                 //принимаем ответ
  30.                 ReceiveMatrix(br, result);
  31.             }
  32.  
  33.             //показываем результат
  34.             PrintMatrix(result);
  35.  
  36.             Console.ReadLine();
  37.         }
  38.  
  39.         private static void SendMatrix(BinaryWriter bw, int[,] matrix)
  40.         {
  41.             for (int i = 0; i < matrix.GetLength(0); i++)
  42.             for (int j = 0; j < matrix.GetLength(1); j++)
  43.                 bw.Write(matrix[i, j]);
  44.         }
  45.  
  46.         private static void ReceiveMatrix(BinaryReader br, int[,] matrix)
  47.         {
  48.             for (int i = 0; i < matrix.GetLength(0); i++)
  49.             for (int j = 0; j < matrix.GetLength(1); j++)
  50.                 matrix[i, j] = br.ReadInt32();
  51.         }
  52.  
  53.         private static void PrintMatrix(int[,] matrix)
  54.         {
  55.             for (int i = 0; i < matrix.GetLength(0); i++)
  56.             {
  57.                 for (int j = 0; j < matrix.GetLength(1); j++)
  58.                     Console.Write("{0}\t", matrix[i, j]);
  59.                 Console.WriteLine();
  60.             }
  61.         }
  62.     }
  63. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы