• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# IO.BufferedStream类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中System.IO.BufferedStream的典型用法代码示例。如果您正苦于以下问题:C# BufferedStream类的具体用法?C# BufferedStream怎么用?C# BufferedStream使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



BufferedStream类属于System.IO命名空间,在下文中一共展示了BufferedStream类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Main

        static void Main(string[] args)
        {
            FileStream fs1 = new FileStream("out.bin",FileMode.Create,FileAccess.Write,FileShare.Read);
            FileStream fs2 = new FileStream("out2.bin",FileMode.Create,FileAccess.Write,FileShare.Read);
            bf1 = new BufferedStream(fs1);
            bf2 = new BufferedStream(fs2);
            try
            {
                Server server = new Server(10, 4096* 100 * 2);
                server.Sequential = false;
                server.Start(new IPEndPoint(IPAddress.Any, 40004));
                server.MessageReceived += OnMessageReceived;

                server.ClientConnected += OnClientConnected;
                server.ClientDisconnected += OnClientDisconnected;
                Console.ReadKey();
            }
            finally
            {
                bf1.Flush();
                bf2.Flush();
                bf1.Close();
                bf2.Close();
                fs1.Close();
                fs2.Close();
            }
        }
开发者ID:demonix,项目名称:KeClientTracer,代码行数:27,代码来源:Program.cs


示例2: ShowUsage

        public override void ShowUsage()
        {
            //BufferedStream类主要也是用来处理流数据的,但是该类主要的功能是用来封装其他流类。
            //为什么要封装其他流类,这么做的意义是什么?按照微软的话说主要是减少某些流直接操作存储设备的时间。
            //对于一些流来说直接向磁盘中存储数据这种做法的效率并不高,用BufferedStream包装过的流,先在内存中进行统一的处理再向磁盘中写入数据,也会提高写入的效率。

            Console.WriteLine("BufferedStream类主要也是用来处理流数据的,但是该类主要的功能是用来封装其他流类。");
            FileStream fileStream1 = File.Open(@"C:\NewText.txt", FileMode.OpenOrCreate, FileAccess.Read);  //读取文件流
            FileStream fileStream2 = File.Open(@"C:\Text2.txt", FileMode.OpenOrCreate, FileAccess.Write);   //写入文件流

            byte[] array4 = new byte[4096];

            BufferedStream bufferedInput = new BufferedStream(fileStream1);         //封装文件流
            BufferedStream bufferedOutput = new BufferedStream(fileStream2);        //封装文件流

            int byteRead = bufferedInput.Read(array4, 0, array4.Length);
            bufferedOutput.Write(array4, 0, array4.Length);

            //= bufferedInput.Read(array4, 0, 4096);
            while (byteRead > 0)                                                    //读取到了数据
            {
                bufferedOutput.Write(array4, 0, byteRead);
                Console.WriteLine(byteRead);
                break;
            };
            bufferedInput.Close();
            bufferedOutput.Close();
            fileStream1.Close();
            fileStream2.Close();
            Console.ReadKey();
        }
开发者ID:BerdyPango,项目名称:Researches,代码行数:31,代码来源:BufferedStreamUsage.cs


示例3: PutMappedResult

		public void PutMappedResult(string view, string docId, string reduceKey, RavenJObject data)
		{
			Etag etag = uuidGenerator.CreateSequentialUuid(UuidType.MappedResults);
			using (var update = new Update(session, MappedResults, JET_prep.Insert))
			{
				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["view"], view, Encoding.Unicode);
				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["document_key"], docId, Encoding.Unicode);
				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["reduce_key"], reduceKey, Encoding.Unicode);
				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["hashed_reduce_key"], HashReduceKey(reduceKey));
				var mapBucket = IndexingUtil.MapBucket(docId);
				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["bucket"], mapBucket);

				using (Stream stream = new BufferedStream(new ColumnStream(session, MappedResults, tableColumnsCache.MappedResultsColumns["data"])))
				{
					using (var dataStream = documentCodecs.Aggregate(stream, (ds, codec) => codec.Value.Encode(reduceKey, data, null, ds)))
					{
						data.WriteTo(dataStream);
						dataStream.Flush();
					}
				}

				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["etag"], etag.TransformToValueForEsentSorting());
				Api.SetColumn(session, MappedResults, tableColumnsCache.MappedResultsColumns["timestamp"], SystemTime.UtcNow.ToBinary());

				update.Save();
			}
		}
开发者ID:KyleGobel,项目名称:ravendb,代码行数:27,代码来源:MappedResults.cs


示例4: SerializeToStreamAsync

        protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context)
        {
            using (var uncloseableStream = new UndisposableStream(stream))
            using (var bufferedStream = new BufferedStream(uncloseableStream))
            {
                Stream compressedStream = null;

                if (encodingType == "gzip")
                {
                    compressedStream = new GZipStream(bufferedStream, CompressionMode.Compress, leaveOpen: true);
                }
                else if (encodingType == "deflate")
                {
                    compressedStream = new DeflateStream(bufferedStream, CompressionMode.Compress, leaveOpen: true);
                }
                else throw new InvalidOperationException("This shouldn't happen, ever.");

                await originalContent.CopyToAsync(compressedStream);

                if (compressedStream != null)
                {
                    compressedStream.Dispose();
                }
            }
        }
开发者ID:heinnge,项目名称:ravendb,代码行数:25,代码来源:CompressedContent.cs


示例5: GetData

        private static IList<DateTime> GetData()
        {
            IList<DateTime> dates = new List<DateTime>();
            var cultureInfo = new CultureInfo("en-US");

            using (var fs = File.Open(DataFilePath, FileMode.Open, FileAccess.Read, FileShare.Read))
            using (var bs = new BufferedStream(fs, 262144))
            using (var sr = new StreamReader(bs))
            {
                while (true)
                {
                    string line = sr.ReadLine();
                    if (line == null) break;
                    try
                    {
                        dates.Add(DateTime.Parse(line, cultureInfo));
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }

            return dates;
        }
开发者ID:miguelqvd,项目名称:QSTK.Net,代码行数:26,代码来源:Nyse.cs


示例6: Set

		public void Set(string name, string key, RavenJObject data, UuidType uuidType)
		{
			Api.JetSetCurrentIndex(session, Lists, "by_name_and_key");
			Api.MakeKey(session, Lists, name, Encoding.Unicode, MakeKeyGrbit.NewKey);
			Api.MakeKey(session, Lists, key, Encoding.Unicode, MakeKeyGrbit.None);

			var exists = Api.TrySeek(session, Lists, SeekGrbit.SeekEQ);


			using (var update = new Update(session, Lists, exists ? JET_prep.Replace : JET_prep.Insert))
			{
				Api.SetColumn(session, Lists, tableColumnsCache.ListsColumns["name"], name, Encoding.Unicode);
				Api.SetColumn(session, Lists, tableColumnsCache.ListsColumns["key"], key, Encoding.Unicode);
				Api.SetColumn(session, Lists, tableColumnsCache.ListsColumns["etag"], uuidGenerator.CreateSequentialUuid(uuidType).TransformToValueForEsentSorting());
				Api.SetColumn(session, Lists, tableColumnsCache.ListsColumns["created_at"], SystemTime.UtcNow);

				using (var columnStream = new ColumnStream(session, Lists, tableColumnsCache.ListsColumns["data"]))
				{
					if (exists)
						columnStream.SetLength(0);
					using (Stream stream = new BufferedStream(columnStream))
					{
						data.WriteTo(stream);
						stream.Flush();
					}
				}
				update.Save();
			}
		}
开发者ID:bbqchickenrobot,项目名称:ravendb,代码行数:29,代码来源:Lists.cs


示例7: PooledSocket

        public PooledSocket(IPEndPoint endpoint, TimeSpan connectionTimeout, TimeSpan receiveTimeout)
        {
            var socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            // all operations are "atomic", we do not send small chunks of data
            socket.NoDelay = true;

            var mre = new ManualResetEvent(false);
            var timeout = connectionTimeout == TimeSpan.MaxValue
                            ? Timeout.Infinite
                            : (int)connectionTimeout.TotalMilliseconds;

            socket.ReceiveTimeout = (int)receiveTimeout.TotalMilliseconds;
            socket.SendTimeout = (int)receiveTimeout.TotalMilliseconds;

            socket.BeginConnect(endpoint, iar =>
            {
                try { using (iar.AsyncWaitHandle) socket.EndConnect(iar); }
                catch { }

                mre.Set();
            }, null);

            if (!mre.WaitOne(timeout) || !socket.Connected)
            {
                using (socket)
                    throw new TimeoutException("Could not connect to " + endpoint);
            }

            this.socket = socket;
            this.endpoint = endpoint;

            this.inputStream = new BufferedStream(new BasicNetworkStream(socket));
        }
开发者ID:Darkseal,项目名称:EnyimMemcached,代码行数:34,代码来源:PooledSocket.cs


示例8: Build

        public void Build(string filename) {
            positions = new List<long>();

            using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) {
                using (BufferedStream bs = new BufferedStream(fs)) {
                    bool detectFirstLine = true;

                    int b = 0;
                    while ((b = bs.ReadByte()) != -1) {
                        if (b == '\n') {
                            positions.Add(bs.Position);
                            detectFirstLine = false;
                        }
                        if (detectFirstLine) {
                            if (bs.Position == 1 && b != 0xEF) {
                                positions.Add(0);
                                detectFirstLine = false;
                            }
                            if (bs.Position == 2 && b != 0xBB) {
                                positions.Add(0);
                                detectFirstLine = false;
                            }
                            if (bs.Position == 3 && b != 0xBF) {
                                positions.Add(0);
                                detectFirstLine = false;
                            }
                            if (bs.Position == 4 && detectFirstLine) {
                                positions.Add(3);
                                detectFirstLine = false;
                            }
                        }
                    }
                }
            }
        }
开发者ID:slieser,项目名称:sandbox2,代码行数:35,代码来源:FileIndex3.cs


示例9: PutReducedResult

		public void PutReducedResult(string view, string reduceKey, int level, int sourceBucket, int bucket, RavenJObject data)
		{
			Guid etag = uuidGenerator.CreateSequentialUuid();

			using (var update = new Update(session, ReducedResults, JET_prep.Insert))
			{
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["view"], view, Encoding.Unicode);
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["level"], level);
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["reduce_key"], reduceKey, Encoding.Unicode);
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["hashed_reduce_key"], HashReduceKey(reduceKey));
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["bucket"], bucket);
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["source_bucket"], sourceBucket);

				using (Stream stream = new BufferedStream(new ColumnStream(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["data"])))
				{
					using (var dataStream = documentCodecs.Aggregate(stream, (ds, codec) => codec.Value.Encode(reduceKey, data, null, ds)))
					{
						data.WriteTo(dataStream);
						dataStream.Flush();
					}
				}

				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["etag"], etag.TransformToValueForEsentSorting());
				Api.SetColumn(session, ReducedResults, tableColumnsCache.ReduceResultsColumns["timestamp"], SystemTime.UtcNow);

				update.Save();
			}
		}
开发者ID:Trebornide,项目名称:ravendb,代码行数:28,代码来源:MappedResults.cs


示例10: AddAttachment

		public Etag AddAttachment(string key, Etag etag, Stream data, RavenJObject headers)
		{
			Api.JetSetCurrentIndex(session, Files, "by_name");
			Api.MakeKey(session, Files, key, Encoding.Unicode, MakeKeyGrbit.NewKey);
			var isUpdate = Api.TrySeek(session, Files, SeekGrbit.SeekEQ);
			if (isUpdate)
			{
				var existingEtag = Etag.Parse(Api.RetrieveColumn(session, Files, tableColumnsCache.FilesColumns["etag"]));
				if (existingEtag != etag && etag != null)
				{
					throw new ConcurrencyException("PUT attempted on attachment '" + key +
						"' using a non current etag")
					{
						ActualETag = existingEtag,
						ExpectedETag = etag
					};
				}
			}
			else
			{
				if (data == null)
					throw new InvalidOperationException("When adding new attachment, the attachment data must be specified");

				if (Api.TryMoveFirst(session, Details))
					Api.EscrowUpdate(session, Details, tableColumnsCache.DetailsColumns["attachment_count"], 1);
			}

			Etag newETag = uuidGenerator.CreateSequentialUuid(UuidType.Attachments);
			using (var update = new Update(session, Files, isUpdate ? JET_prep.Replace : JET_prep.Insert))
			{
				Api.SetColumn(session, Files, tableColumnsCache.FilesColumns["name"], key, Encoding.Unicode);
				if (data != null)
				{
					long written;
					using (var columnStream = new ColumnStream(session, Files, tableColumnsCache.FilesColumns["data"]))
					{
						if (isUpdate)
							columnStream.SetLength(0);
						using (var stream = new BufferedStream(columnStream))
						{
							data.CopyTo(stream);
							written = stream.Position;
							stream.Flush();
						}
					}
					if (written == 0) // empty attachment
					{
						Api.SetColumn(session, Files, tableColumnsCache.FilesColumns["data"], new byte[0]);
					}
				}

				Api.SetColumn(session, Files, tableColumnsCache.FilesColumns["etag"], newETag.TransformToValueForEsentSorting());
				Api.SetColumn(session, Files, tableColumnsCache.FilesColumns["metadata"], headers.ToString(Formatting.None), Encoding.Unicode);

				update.Save();
			}
			logger.Debug("Adding attachment {0}", key);

			return newETag;
		}
开发者ID:925coder,项目名称:ravendb,代码行数:60,代码来源:DocumentStorageActions.cs


示例11: connect

        public bool connect()
        {
            client = new TcpClient(APIConstants.DEFAULT_SERVER,APIConstants.DEFAULT_TCP_PORT);

            client.NoDelay = true;

            start = DateTime.Now;

            st = new BufferedStream(client.GetStream(),8000);

            Envelope ping = new Envelope() { ping = new PingMsg() { nonce = new Random().Next(int.MaxValue) } , type = Envelope.MsgCode.PingMsgCode };

            DateTime deadline = DateTime.Now.AddMilliseconds(3000);
            while (DateTime.Now < deadline)
            {
                send(ping);

                System.Threading.Thread.Sleep(500);

                var pingresp = receive(0);

                if (pingresp != null && pingresp.pingResponse != null)
                    return true;
            }
            
            throw new IOException("No Responce");

        }
开发者ID:jank3,项目名称:MissionPlanner,代码行数:28,代码来源:DroneProto.cs


示例12: EbcdicTestsTestReader

        public void EbcdicTestsTestReader()
        {
            FileFormat fileFormat = CopybookLoader.LoadCopybook(Copybook + "/Test.fileformat");
            using (BufferedStream inputStream = new BufferedStream(new MemoryStream(Bytes)))
            {
                EbcdicReader reader = new EbcdicReader(inputStream, fileFormat, false);
                List<object> record = reader.NextRecord();
                Assert.AreEqual(Objects.Length, record.ToArray().Length);
                Assert.AreEqual(Objects.GetType(), record.ToArray().GetType());

                //NOTE : CollectionAssert does not support nested collection handling ...
                int index = 0;
                foreach (var rec in record.ToArray())
                {
                    var array = rec as Array;
                    if (array != null)
                    {
                        CollectionAssert.AreEqual((Array)Objects[index], array);
                    }
                    else
                    {
                        Assert.AreEqual(Objects[index], rec);
                    }
                    index++;
                }
            }
        }
开发者ID:pkubryk,项目名称:SummerBatch,代码行数:27,代码来源:EbcdicTests.cs


示例13: GetXmlFromStream

        public static XDocument GetXmlFromStream(string url)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);
            request.ServicePoint.Expect100Continue = false;
            request.Proxy = null;

            var response = request.GetResponse();
            
            var xml = string.Empty;
            using (var stream = response.GetResponseStream())
            {
                using (var buffer = new BufferedStream(stream))
                {
                    using (var reader = new StreamReader(buffer, Encoding.UTF8))
                    {
                        xml = reader.ReadToEnd();
                    }
                }
            }

            //The Star-Wars-Beatles-PeerGynt-bug
            //Aleph XML-repsonses somtimes returns Unicode SOH instead of SP 
            //a few places in the document.
            //This causes the parsing to fail..
            const char soh ='\u0001';
            const char sp = '\u0020';
            var xmlEscaped = xml.Replace(soh, sp);

            return XDocument.Parse(xmlEscaped);
        }
开发者ID:khellang,项目名称:Solvberget,代码行数:30,代码来源:RepositoryUtils.cs


示例14: init

        public bool init(TcpClient client)
        {
            if (client == null) {
                return false;
            }

            _tcpClient = client;

            try {
                Stream stream = _tcpClient.GetStream();

                // !! DO NOT instantiate the LineReaderInputStream with a BufferedStream
                // this can cause very odd behaviour
                _inputReader = new LineReaderInputStream(stream);

                BufferedStream buffStream = new BufferedStream(stream);
                _outputWriter = new StreamWriter(buffStream);

                return true;
            }
            catch (SocketException ex) {
                // close the socket if an exception occurs getting its  stream
                closeConnection();                        
                if (_debug) {
                    Console.WriteLine(ex.ToString());
                }
            }

            return false;  
        }
开发者ID:agilecomputing,项目名称:nomads,代码行数:30,代码来源:CommHelper.cs


示例15: BitReader

        public BitReader(byte[] bytes)
        {
            MemoryStream ms = new MemoryStream(bytes);
            ms.Position = 0;

            s = new BufferedStream(ms);
        }
开发者ID:nazarovmikhail,项目名称:sharp-lzw,代码行数:7,代码来源:BitReader.cs


示例16: CSocket

 public CSocket(IPEndPoint _endPoint, ScoketPool _pool, SocketPoolProfile config)
 {
     socketConfig = config;
     endpoint = _endPoint;
     pool = _pool;
     Socket _socket = new Socket(_endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
     _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, (int)config.SendTimeout.TotalMilliseconds);
     _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 24 * 3600 * 1000/*one day*/);//(int)config.ReceiveTimeout.TotalMilliseconds);
     _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.NoDelay, !config.Nagle);
     _socket.Connect(_endPoint);
     socket = _socket;
     this.inputStream = new BufferedStream(new NetworkStream(this.socket), config.BufferSize);
     Thread th = new Thread(delegate() {
         while (true)
         {
             try
             {
                 Receive();
             }
             catch (Exception ex)
             {
                 logger.Notice(ex.Message);
             }
         }
     });
     th.Start();
 }
开发者ID:livvyguo,项目名称:Gaea,代码行数:27,代码来源:CSocket.cs


示例17: ToTransportMessage

		public static TransportMessage ToTransportMessage(this SqsTransportMessage sqsTransportMessage, IAmazonS3 amazonS3, SqsConnectionConfiguration connectionConfiguration)
        {
            var messageId = sqsTransportMessage.Headers[Headers.MessageId];

			var result = new TransportMessage(messageId, sqsTransportMessage.Headers);

            if (!string.IsNullOrEmpty(sqsTransportMessage.S3BodyKey))
            {
                var s3GetResponse = amazonS3.GetObject(connectionConfiguration.S3BucketForLargeMessages, sqsTransportMessage.S3BodyKey);
                result.Body = new byte[s3GetResponse.ResponseStream.Length];
                using (BufferedStream bufferedStream = new BufferedStream(s3GetResponse.ResponseStream))
                {
                    int count;
                    int transferred = 0;
                    while ((count = bufferedStream.Read(result.Body, transferred, 8192)) > 0)
                    {
                        transferred += count;
                    }
                }
            }
            else
			{
				result.Body = Convert.FromBase64String(sqsTransportMessage.Body);
			}

            result.TimeToBeReceived = sqsTransportMessage.TimeToBeReceived;

			if (sqsTransportMessage.ReplyToAddress != null)
			{
				result.Headers[Headers.ReplyToAddress] = sqsTransportMessage.ReplyToAddress.ToString();
			}

            return result;
        }
开发者ID:briangoncalves,项目名称:NServiceBus.AmazonSQS,代码行数:34,代码来源:SqsMessageExtensions.cs


示例18: SetPositionToNegativeValue_Throws_ArgumentOutOfRangeException

 public static void SetPositionToNegativeValue_Throws_ArgumentOutOfRangeException()
 {
     using (BufferedStream stream = new BufferedStream(new MemoryStream()))
     {
         Assert.Throws<ArgumentOutOfRangeException>(() => stream.Position = -1);
     }
 }
开发者ID:neris,项目名称:corefx,代码行数:7,代码来源:BufferedStream.InvalidParameters.cs


示例19: SerializeToStreamAsync

        protected override Task SerializeToStreamAsync(Stream stream, TransportContext context)
        {
            if (HasNoData())
                return new CompletedTask<bool>(true);

            using ( var undisposableStream = new UndisposableStream(stream) )
            using ( var bufferedStream = new BufferedStream(undisposableStream))
            {
                var writer = new StreamWriter(bufferedStream, DefaultEncoding);
                if (string.IsNullOrEmpty(Jsonp) == false)
                {
                    writer.Write(Jsonp);
                    writer.Write("(");
                }

                Data.WriteTo(new JsonTextWriter(writer)
                {
                    Formatting = IsOutputHumanReadable ? Formatting.Indented : Formatting.None,
                }, Default.Converters);

                if (string.IsNullOrEmpty(Jsonp) == false)
                    writer.Write(")");

                writer.Flush();
            }

            return new CompletedTask<bool>(true);
        }
开发者ID:heinnge,项目名称:ravendb,代码行数:28,代码来源:JsonContent.cs


示例20: DSCTokenizer

 public DSCTokenizer(Stream stream, bool isUnicode, bool isLittleEndian)
 {
     _stream = stream;
     _bufferedStream = new BufferedStream(_stream);
     _isUnicode = isUnicode;
     _isLittleEndian = isLittleEndian;
 }
开发者ID:jhabjan,项目名称:Ghostscript.NET,代码行数:7,代码来源:DSCTokenizer.cs



注:本文中的System.IO.BufferedStream类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# IO.Directory类代码示例发布时间:2022-05-26
下一篇:
C# IO.BinaryWriter类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap