コード例 #1
0
        public void SaveLoadBigPolyArrayNET()
        {
            var stream = new MemoryStream();

            var arr = new BigPolyArray(3, 5, 10);

            arr[0][0].Set(1);
            arr[0][1].Set(2);
            arr[0][2].Set(3);
            arr[1][0].Set(4);
            arr[1][1].Set(5);
            arr[2][0].Set(6);

            var arr2 = new BigPolyArray();

            stream.Seek(0, SeekOrigin.Begin);
            arr.Save(stream);
            stream.Seek(0, SeekOrigin.Begin);
            arr2.Load(stream);

            Assert.AreEqual(3, arr2.Size);
            Assert.AreEqual(arr2.Size, 3);
            Assert.AreEqual(arr2.CoeffCount, 5);
            Assert.AreEqual(arr2.CoeffBitCount, 10);

            Assert.IsTrue(arr[0].Equals(arr2[0]));
            Assert.IsTrue(arr[1].Equals(arr2[1]));
            Assert.IsTrue(arr[2].Equals(arr2[2]));
        }
コード例 #2
0
        private static BigPolyArray[] ReceiveEncryptedArray(int length, TcpClient client, NetworkStream nwStream,
                                                            BinaryFormatter binForm)
        {
            int bytesRead = 0;

            byte[] buffer           = new byte[client.ReceiveBufferSize];
            var    encryptedDataBat = new BigPolyArray[length];

            for (int i = 0; i < encryptedDataBat.Length; i++)
            {
                buffer    = new byte[client.ReceiveBufferSize];
                bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize);

                var arr = new BigPolyArray();
                using (var ms = new MemoryStream())
                {
                    ms.Write(buffer, 0, bytesRead);
                    ms.Seek(0, SeekOrigin.Begin);
                    arr.Load(ms);
                    ms.Flush();
                }
                encryptedDataBat[i] = arr;
                binForm.Serialize(nwStream, "OK");
            }
            return(encryptedDataBat);
        }