Клиент-серверное приложение на сокетах 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(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д