自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (8)
  • 收藏
  • 关注

原创 .net下的面向工控领域的远程方法调用(RMI)中间件,测试程序

Demo下载地址:http://download.csdn.net/detail/gongbenwen/9639402 从开始构思到整个中间件编写完毕,前前后后,大概有一年多的时间,中间几次因为通用性和灵活性不足,或是关键点没想清楚,推翻了或重写。 最后一次重订底层通信协议,大概是三个月前,参阅了几本远程通信的书,把其中关键的消息分发环节,想通了,重新做的协议。 最后一次重构,对序列化方式、

2016-09-25 14:18:28 393

原创 Winform异步界面调用设计

在超长时间调用时,如果采用同步调用,因为窗口的Windows消息循环被阻塞,会造成界面出现假死或卡死的状态。 为了避免窗口出现假死状态,通常采用异步调用,利用定时器周期性的泵入消息到主窗口,提示操作执行的进度。同时为了优雅的取消长时间的操作,需要提供对应的异步操作取消操作处理。主窗口中应该可以同时发起多个异步操作,相互之间互不干涉。 基于以上的处理需求,编写了异步处理调用窗口基类。 每一个具

2016-09-11 14:26:32 1815

原创 .Net下两种TCP监听服务的对比

在200万条数据构建的序列化通信传输上,采用异步TCPServer进行监听处理,并缓冲对应的字节流,采用ProtoBuf序列化,内存瞬时峰值会达到1.5G,在GC不进行强制回收的过程中,其占用内存会在1-1.5G之间波动。采用基于IO完成端口的TCP监听处理,采用相同的Protobuf序列化,内存瞬时峰值会达到1G左右,在GC不进行强制回收内存的过程中,其内存会在0.15-1G之间波动,基本上传输

2016-09-01 23:17:36 1837

原创 两种序列化方式在大数据量下的压力测试

谷歌的ProtoBuf一直被称为序列化的神器,这在很多测试场合下也是被证明了,今天在RMI中间件同步调用单元写完之后,进行通信和压力测试,同样的200万条数据,由服务器端构建,客户端进行拉取,Protobuf序列化、反序列化,加上通信时间大概用了40秒左右,服务器端吃内存在1.5G左右,用Json做序列化、反序列化,加上通信用时在4分20秒左右,服务器端吃内存大概在2.9G左右,两者无论空间占用和

2016-09-01 22:52:20 1822

Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL,源代码实现

编写API的目的,Zebra官方提供的Unicode转化组件FNTHEX32.DLL,是一个非托管组件,托管环境下还需要再封装。 该组件直到现在还未找到对应的64位程序兼容组件,为了解决32位和64位的兼容问题,最后编写开发此API, 此API完全用.net开发,无需考虑兼容性问题,实现与FNTHEX32.DLL相同的效果。 此API改善了FNTHEX32.DLL中的字体问题,支持windows下所有字体。 程序处理思路: 先将文本用GDI+做绘图, 在内存中绘制出文本对应的图形, 然后将图形进行像素点取点处理, 取出每一个像素点,进行灰度处理, 按照0-255的灰度值,进行黑白判断, 此处取了一个中间一点的值,180,作为黑白分解点, 取出的黑白点,按照01组合,每八个像素点组合成一个字节,不满0填充,0代表白色像素点,1代表黑色像素点 将字节转化成对应的16进制字符,完成无压缩数据获取 在无压缩数据的基础上,按照ZPL指令中进行压缩,可以大量缩减字节长度,ZPL压缩参见ZPL协议

2022-11-22

Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL

编写API的目的,Zebra官方提供的Unicode转化组件FNTHEX32.DLL,是一个非托管组件,托管环境下还需要再封装。 该组件直到现在还未找到对应的64位程序兼容组件,为了解决32位和64位的兼容问题,最后编写开发此API, 此API完全用.net开发,无需考虑兼容性问题,实现与FNTHEX32.DLL相同的效果。 此API改善了FNTHEX32.DLL中的字体问题,支持windows下所有字体。 程序处理思路: 先将文本用GDI+做绘图, 在内存中绘制出文本对应的图形, 然后将图形进行像素点取点处理, 取出每一个像素点,进行灰度处理, 按照0-255的灰度值,进行黑白判断, 此处取了一个中间一点的值,180,作为黑白分解点, 取出的黑白点,按照01组合,每八个像素点组合成一个字节,不满0填充,0代表白色像素点,1代表黑色像素点 将字节转化成对应的16进制字符,完成无压缩数据获取 在无压缩数据的基础上,按照ZPL指令中进行压缩,可以大量缩减字节长度,ZPL压缩参见ZPL协议

2017-10-31

.net TCP 下的RMI测试Demo

.net TCP 下的RMI测试Demo

2016-09-25

基于.net TCP双向监听RMI组件Demo

基于.net TCP双向监听RMI组件Demo

2016-09-25

Winform通用异步界面调用

Winform通用异步界面调用

2016-09-11

Winform界面异步调用

Winform界面异步调用

2016-09-11

对IncJet喷码机的网口通信协议进行了驱动层的封装

对IncJet喷码机的网口通信协议进行了驱动层的封装

2016-08-27

IncJet喷码机TM1,网口协议驱动程序

对IncJet喷码机的网口通信协议进行了驱动层的封装

2016-08-19

通用日志记录组件

/* 整个日志记录的调度全部统一放在公共组件中,使用者只需要构建两个派生类,实现简单灵活,当前只针对写入到文件的日志记录,后面逐步增加到数据库的结构化日志存储接口 * 一个派生类,用于指定其实现的日志记录类型,另一个派生类,用于设置日志记录配置信息 * 通用日志记录组件,采用统一的写入接口,在内部根据外部的派生类,实现自动的日志信息分拣 * 由于通用日志记录组件内部,会有几级的缓存调度处理,要结合全局消息中心进行配套启停使用详见Program.cs启动项,可根据配置信息,进行调度设置 * 日志写入接口自动实现线程数据同步,在不同的线程下写入日志记录,无需关注线程数据同步,并且日志记录写入为无阻塞处理,不会影响主业务线程的任何调度 * 多进程运行,根据进程唯一标记,自动对记录文件进行标记,防止标记文件共享冲突 */

2014-12-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除