delphi xe2学习笔记(1)

原有的一个项目准备扩展成多层应用。这个项目本来是个单机版的数据采集系统,delphi7+ACCESS开发的,已经在试运行(感觉良好,_~~_)。

原本这个程序只是一个简单的数据采集显示系统,不过随着试用过程,客户要求也越来越多了,现在的程序和刚开始试用时比起来已经面目全非了。采集点扩展了,从原来的单串口扩展到现在支持16个串口,程序也从单个后台采集线程扩展到多个采集线程和管理线程(嗯,有2个线程组列表,一个采集线程列表,一个管理线程列表,用TObjectList实现),功能也从单纯的采集扩展成兼顾设备管理和数据汇总分析了(尽管只是初步的数据统计功能),已经变得庞大和丑陋了。

最近更不妙了,客户要把全部点都要采集上,这个就不是单机能忙得过来了。单机版本16个串口(实际使用中是一对串口配合用的,一个串口采集,一个串口用于管理),大概可以支持2096个点,当然由于编号的问题,不能全部用上。客户规划大概是近期10000点,远期40000点。这可是大出意外,没办法,只能用多机+多层系统+SQLSERVER了。

对于多层系统,原来比较少涉及,只好现学现卖了。

昨天下了个delphixe2白皮书,开始按照书中的例子来弄。XE2是早就装好的,原来只是好奇着瞧瞧。照搬着书中的例子,服务器端好了,运行,出错,这是怎么回事?找了半天,原来是我没创建服务的实例,哈哈,我的习惯是在工程选项里设置主窗体是自动创建,其它窗体和模块手工创建,嘿嘿,原来装了XE2的时候也改了这个。这下应当可以了,不过……

昨天弄了一下午,怎么整都不行,就是连不上服务,我祈祷了,我诅咒了,不行就不行。“can not bind socket. address and port are already in use”就是这个啊,我拼命改啊改,PORT从1000改到9000都一样(哈哈)。我的通信协议创建了3个,TCP/HTTP/验证,一直在看着DSPORT,怎么改都不行,放弃了……

早上来,接着调,还是不行。鼠标就在几个服务组件上来回点着,突然看到一个8080,这个好熟悉,是DSHTTPSERVER用的HTTPPORT,我模模糊糊记得电脑有个什么东东用这个口,难道是它,改,果然啊,嘿嘿(公司的一个网络管理软件用了这个口,我电脑上也装了,杯具啊,我只是帮同事看看这个软件的使用而已……)

原文地址:https://www.cnblogs.com/jankerxp/p/7774044.html