日期:2014-05-20  浏览次数:20782 次

客户端数据处理方案
各位大侠,我最近做一个项目,要开发一个客户端,遇到了一个这样的问题,场景主要点是这样的:
1. 创建一个客户端套接字,循环监听生产服务器,生产服务器会不定时地将生产线的生产数据传到我的客户端,我的客户端用套接收数据,至于生产服务器如何获取数据大家不用关心,我已经可以跟服务器通信,只取数据就好
2. 生产数据是以某种指定的格式发送过来的,要有一个解析过程,才能从字符串中获取到需要的生产数据,这是供应商的系统决定的,我只能照它的格式接收
3. 生产数据发送频率有点高,在数据发送过来的接收过程和2中提到的解析过程会产生大量的字符串创建操作,这样会有大量的对象被创建,对于内存有影响
4. 生产数据在接收到后通过解析要实时地显示成图表,同时还要保存到数据库中作为历史数据进行查询。

针对以上几个要求,大家给点意见,客户端这边要如何做才能保证以下几点:
1. 数据显示的实时性
2. 内存的管理
3. 数据库的数据插入

这个号刚建没多久,分数不多,还望大家海涵,帮我出出主意,谢谢大家了。



------解决方案--------------------
探讨
回1楼的兄台,我的客户端是直接连接供应商提供的生产系统所在的服务器的,服务器会不定时地将生产数据实时发过来,我觉得WCF在这种场景下不适用,我直接在客户端接收就好,现在问题就是,数据接收太频繁,导致大量的的string对象在托管堆上频繁创建,对内存有压力,而且数据还要实时展示,与此同时还要将数据插入到数据库中。

------解决方案--------------------
为什么要用死循环呢?

你做一个数据展示页面,然后定时去连接服务器获取数据再解析和展示就行了。

原理类似于网站一样,请求/接收/解析。

socket有接收事件吧,接收到就处理。没有数据就处于空闲,

你用死循环,没有接收数据也是忙着的,即使你用sleep