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

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

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

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

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

textual
Листинг программы
using System;
using System.IO;
using System.Net.Sockets;
 
namespace ConsoleApplication198
{
    class Program
    {
        static void Main()
        {
            var matrix1 = new int[3, 3] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }};
            var matrix2 = new int[3, 3] { { 11, 12, 13 }, { 14, 15, 16 }, { 17, 18, 19 } };
            var result = new int[3,3];
 
            //создаем сокет
            var client = new TcpClient();
            //коннектимся к серверу
            client.Connect("localhost", 32333);
            //отправляем данные
            using (var stream = client.GetStream())
            using (var bw = new BinaryWriter(stream))
            using (var br = new BinaryReader(stream))
            {
                //отправлем размер матриц
                bw.Write(matrix1.GetLength(0));
                //отправляем матрицы
                SendMatrix(bw, matrix1);
                SendMatrix(bw, matrix2);
                //принимаем ответ
                ReceiveMatrix(br, result);
            }
 
            //показываем результат
            PrintMatrix(result);
 
            Console.ReadLine();
        }
 
        private static void SendMatrix(BinaryWriter bw, int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++)
            for (int j = 0; j < matrix.GetLength(1); j++)
                bw.Write(matrix[i, j]);
        }
 
        private static void ReceiveMatrix(BinaryReader br, int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++)
            for (int j = 0; j < matrix.GetLength(1); j++)
                matrix[i, j] = br.ReadInt32();
        }
 
        private static void PrintMatrix(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                for (int j = 0; j < matrix.GetLength(1); j++)
                    Console.Write("{0}\t", matrix[i, j]);
                Console.WriteLine();
            }
        }
    }
}

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


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

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

14   голосов , оценка 4 из 5
Похожие ответы