信息接收进入实质性编程

晚上继续NetAdmin的开发,对最后的信息接收处理、我的信箱维护等进行具体代码编写。 因应用层协议前两天已经定下来,也不是很复杂,因此,程序写起来也比较轻松。唯一比较麻烦的是对聊天信息的Html显示,需要自动处理正文中的URL及表情符。 这两天的一些模块代码将成为后续嵌入应用程序的若干模块的重要来源,尽管界面上肯定要变化一下,但代码可以较少变动。

果然忙起来了

今天周一,果然收到了江苏客户的软件需求。标志着接下去一段时间有得忙了。 但由于原先那个系统大大部分程序可以挪过来,并且思路都是齐备的,难度并不大。 准备把界面弄漂亮些,操作更简单、方便些,毕竟那些客户可大都是泥腿子。 由于是局域网版本,故只使用单节点的快驴中间件,作为客户端同步消息转发、即时通信的服务器,而数据库的代理存取功能,不需要,RPC也不用到。

快驴中间件原理简介

所谓“中间件”(middleware),是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中间件是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。中间件大致可分为终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。 在下设计...

快驴中间件RPC开发案例

delphi也能开发中间件,在下就开发了一套,而且功能强大。您可以浏览www.quickburro.com网站了解更多的信息。这里我们将通过一个实际的远过程调用(RPC)应用开发案例,来说明使用快驴中间件进行应用开发的好处。而RPC,仅仅是快驴中间件的重要功能中的一个... 快驴中间件RPC开发案例 一、任务完成一个跨Internet的远程文件管理软件。通过在服务器端开发一个插件、客户端进行远过程调用(RPC)实现。 二、准备工作 1、 组网 如果没有固定IP的Internet服务器,可在局域网中进行模拟组网。 选一个固定IP的Internet服务器,安装S...

用户点对点信息交换问题

今天先对管理员与用户之间的信息交流问题进行了总体分析,然后进一步把用户之间点对点信息交换的应用协议给定了下来,按下面这样约定: 主类别号 说明 子类别号 说明 孙类别号 说明 ------------------------------------------------------- 12 点对点 1 留言 ------------------------------------ 2 ...

技术准备的日子真好

这些天boss的压力很大,家里一窝人没事干而那两个项目又没有敲定。 想必不懂技术搞业务的难度不会比我们只懂技术的去搞业务要简单,啥都不懂,怎么表达呢,客户一听你的话,便晓得了你的底细,怎么不叫客户担心哟。 这样的日子对俺来说真是十分的惬意:按照自己的长久安排,对即将来临的三层应用开发做准备,可以平心静气地考虑些技术问题、搜索点技术资料、博客上帖点什么、在群里与人交流一下... 那QuickBurro,今天又有好信息收到,又有两位客户来询价。通过这些天晚上在各个论坛里的活动,还是收到了些宣传效果。但总的感觉是现在水平较高的Delphi程序员不多,很多人都是三层系统的门外汉,更不用说中...

Delphi编程控制摄像头

你的电脑有没有摄像头?看到别人用QQ玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI使用MS的AVICAP32.DLL就可轻松的实现对摄像头编程,如果再加上你的网络编程水平,实现一个视屏聊天就不成什么问题了。看看下面代码的代码:const WM_CAP_START = WM_USER;const WM_CAP_STOP = WM_CAP_START + 68;const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;const WM_CAP_S...

用Delphi开发视频聊天室

摘要:目前网上视频聊天室、视频会议软件、可视IP电话软件随处可见,你是否想自己做一个玩玩?其实这类软件无非是视频加上网络而建成的。如果熟悉视频捕捉和网络传输技术,根本就难不倒你。微软为软件开发人员提供了一个专门用于视频捕捉的VFW SDK(Video for Windows SDK),用它实现视频捕捉很简单,至于网络传输嘛,Delphi更是提供了N多种网络组件,随你用了。本文详细介绍了如何利用Delphi中开发视频聊天室,同时给出了两个程序示例。 关键词:Delphi VFW 视频 视频会议 视频聊天 Video for Windows作者:徐长友(yousoft@sina.com)一、...

枚举SQL服务器及数据库

unit uMain;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, dxCntner, dxEditor, dxExEdtr, dxEdLib, StdCtrls,ComCtrls,ComObj, Buttons;typeTfrmMain = class(TForm)Panel1: TPanel;Bevel1: TBevel;Bevel2: TBevel;Bevel4: TBevel;Label1: TLabel;HostN...

完成端口的简单分析

用DELPHI开发网络代码已经有一段时间了! 我发现在网上用VC来实现完成端口(IOCP)的代码很多,但是使用DELPHI来实现的就比较少了。对IOCP讲的清楚的就更少了。在这里我把自己编写DELPHI下的IOCP写出来,希望对刚学完成端口的朋友有个帮助。 首先我们来了解一些在使用IOCP的时候需要使用的一些结构! (1):单IO数据结构 LPVOID = Pointer; LPPER_IO_OPERATION_DATA = ^ PER_IO_OPERATION_DATA ; PER_IO_OPERATION_DATA = packed record Overlap...

TWinSocketStream接口问题

我认为, Delphi VCL提供的TWinSocketStream类接口Write的参数列表定义有问题. 本人在使用该接口向Socket发送数据时, 发现发送的数据不正确, 请看下面的描述性代码部分: var FSocketStream: TWinSocketStream; DataBuf: TByteDynArray; begin SetLength (DataBuf, DataSize); try // Assume FSockSteam bound with somewhat sock before. ...

关于SQL Server绿色版

微软在数据库方面还没有非常的体贴用户,在高端SQL Server与低端的桌面数据库之间,缺乏一种过渡性的产品——这一产品应既能满足多用户访问的需要,也要能满足应用程序发布的方便性、可维护性。 虽然微软发布了MSDE,似乎弥补了这一矛盾,但追求完美的程序员仍然会觉得安装MSDE的那一系列对话框是多余的,因为这些对话框的存在使得程序员在发布他的产品时无法做到数据库系统与应用程序的一起打包、发布、安装,用户维护起来也因涉及两个系统而变得复杂起来,碰上“中国特色的用户”(呵呵,就是那些企业界老表),那么程序员就更加头痛。 于是,有人竟对微软的SQL Server进行了改造——所谓SQL Se...

UPNP--动态端口映射

UPNP的全称是 Universal plug-and-play( 通用即插即用).UPnP 是针对智能家电、无线设备以及各种外观尺寸的个人电脑的普遍对等(peer-to-peer)网络连接而设计的一种架构。它旨在为家庭、小型企业、公共场所中或连接到互联网的ad-hoc 网或未管理网络提供易于使用、灵活且基于标准的连接。(引自这里.)  我们这里用到的自动端口映射只是UPNP的一个小应用。按照UPNP的相关规范,UPNP网络的第0步是寻址(获得一个IP地址,在我要解决的问题中这不是一个问题。)        第1步是发现,控制点在网上搜索感兴趣的设备,而设备向网络中的控制点宣告其服...

后台调用外部程序的完美实现

最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启动后,将那个软件打开,在需要的时候,对其中的一个文本矿设置一些文字,再点击一个按钮就可以了。说到这里,相信你也有了对该功能的一些初步设想了,没错,其基本思路就是:1)调用CreateProcess()打开目标程序。2)用FindWindow()找到目标程序的窗口Handle。3)找到文本框的Handle,以及按钮的MessageID,用SendMessage()方法设置文字,并触发事件。好了,这样确实很简单吧,但是当我实现它后,却发现这样做的结...

关于压缩流和解压流的应用

软件开发者不免都要遇到压缩数据的问题!经常使用Delphi的朋友都知道,它为我们提供了两个流类(TCompressionStream和TDecompressionStream)来完成数据的压缩和解压缩,但美中不足的是,该流在Delphi 的帮助中没有详细的说明,使得它们在使用起来有一定得困难。其实在Delphi系统中提供了这两个类的源代码和库。保存在Delphi 光盘的\Info\Extras\Zlib\ Src和\Info\Extras\Zlib\Obj目录中(其中OBJ目录中保存的是库,Src目录中保存的是源代码,感兴趣的朋友可以看看)。本人在使用的过程中,对它们有了一定的了...

ClientDataSet的隐含功能

ClientDataSet组件支持很多特性,其中一些与三级结构有关,而且还可以用在其他环境中。该组件说明了一个数据库完全映象在内存中,这使得可以进行动态的操作,如建立一个索引,其他数据集合通常不支持该特性。例如,为了对查询分类,我们通常是重新执行它。为了索引一个局部表格,需要定义索引。只有ADO数据集合有一些与ClientDataSet一样的动态索引功能。索引并不是ClientDataSet提供的全部功能。当我们拥有了索引之后,可以基于它定义组,可能是多级别的分组。对于确定一个记录在组中的位置(头、尾或中间位置),甚至有专门的支持。在组或整个数据表格中,我们可以定义总计;也就是说,可以动...

简析Delphi中的XML编程[转载]

XML(eXtensible Markup Language可扩展标志语言)在近几年的信息类杂志、网站上可谓是最抢眼的一词。大大小小的信息产品都争相和它搭上关系,唯恐赶不及这辆快车。有着良好口碑的宝蓝 (Borland)系列开发平台也不例外,从6.0版开始就集成了XML组件包,因其使用MSXMLDom解析器,相比于此前广泛应用的XMLParser解析器,MSXMLDom更显规范、中文兼容性更好(元素名、属性名均支持中文),很受开发者青睐。为帮助初学者快速掌握Delphi中的XML编程,笔者特写此文,以供交流。 笔者通过一个读写XML文件的实例来说明XML编程的各个步骤,只需读者有结点、元...

多层结构中CDS的全面剖析

在三层结构中,TClientDataSet的地位是不可估量的,她的使用正确与否,是十分关键的,本文从以下几个方面阐述她的使用,希望对你有所帮助.1.动态索引procedure TForm1.DBGrid1TitleClick(Column: TColumn);beginif (not column.Field is Tblobfield) then//Tblobfield不能索引,二进制ClientDataSet1.IndexFieldNames:=column.Field.FieldName;end;2.多层结构中主从表的实现设主表ClientDataSet1.packetrecord...

7月4日开博时的进度情况

开博的时候,正值快驴系统1.08版本发布、1.09版本的“超级管理员远程管理工具 NetAdmin”的开发接近尾声的时候,所以1.08及之前各版本的开发进度情况将不在本日志里记录。 因远程管理的需要,6月下旬及7月初已完成了远程文件存取插件、远程截屏插件、远程鼠标控制插件、以及远程Sql Server数据库管理插件的开发与测试。这两天应用这些插件顺利完成了远程节点控制、远程节点数据库管理等功能。 在进行远程插件的挂接与卸载时,碰到了原节点系统NetDNA不存在远程卸载功能的问题,因此,4日晚对NetDNA 1.08进行了修改,加入了本服务,5日开发NetAdmin时进行了调试,顺利通...

花枝招展的Web

程序员对c/s与b/s的选择,始终是争论不休的问题。我来谈谈自己的看法。 其实也没啥好争的,b/s只不过是c/s的一种特例而已,“Client”特殊地以“Browser”替代而已,“Server”不变,所以,把两种模式并驾齐驱、争论不休实在毫无意义,而那些把b/s说得天花乱坠、欲将风头淹没c/s的举动更是无知之举。 要知道,b/s再怎么变,它始终还是c/s,儿子生出来了,却想把老子毙了,是不是很好笑?要知道你b/s血管里流的还是c/s的血,你再变,还是无法抛弃c/s遗传给你的基因的。孙悟空再本事,有办法逃出如来的手掌么? 何以证明b/s是c/s的儿子?从协议层面分析就非常清楚了。b...