コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }