private void GetMatrixMultiplicationResult() { try { // TODO: Make TextFileLogger MatrixClientSocket socket = new MatrixClientSocket(new ConsoleLogger()); MxMultiplicationInputModel inputModel = new MxMultiplicationInputModel() { MX1Name = fstMxName_textBox.Text, MX2Name = secMxName_textBox.Text, RowBegin = int.Parse(fromRowRange_textBox.Text), RowEnd = int.Parse(toRowRange_textBox.Text), ColBegin = int.Parse(fromColRange_textBox.Text), ColEnd = int.Parse(toColRange_textBox.Text) }; OperationResult <List <List <int> > > response = socket.GetData(inputModel); if (response.Status == OperationStatus.Ok) { FormDataGridView(response.Data); } else { ShowError(response.Message); } } catch (Exception ex) { ShowError(ex.Message); } }
public OperationResult <List <List <int> > > GetData(MxMultiplicationInputModel inputModel) { OperationResult <List <List <int> > > result; try { IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(address), port); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(ipPoint); string message = JsonSerializer.Serialize(inputModel); byte[] data = Encoding.Unicode.GetBytes(message); socket.Send(data); data = new byte[256]; StringBuilder builder = new StringBuilder(); int bytes = 0; do { bytes = socket.Receive(data, data.Length, 0); builder.Append(Encoding.Unicode.GetString(data, 0, bytes)); }while (socket.Available > 0); string answer = builder.ToString(); result = JsonSerializer.Deserialize <OperationResult <List <List <int> > > >(answer); socket.Shutdown(SocketShutdown.Both); socket.Close(); } catch (Exception ex) { logger.Error(ex.Message); throw ex; } return(result); }