请大家看这个问题(很急啊,大家帮帮忙)(100分)

  • 主题发起人 主题发起人 笨猪
  • 开始时间 开始时间

笨猪

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的:一台服务器放在总公司,而分公司在其它地方使用internet网络(可以是普通
拨号上网或者是ADSL、DDN等专线上网)来将分公司数据传送到总公司的数据库服务器;
需要解决的问题是:假如是普通拨号上网的分公司传送数据,则由于每次拨号上网的Ip
都是不同的,那么服务器应该怎样记录是该分公司将数据传送过来的?)
 
自己定义一个报文头,区别各个分公司。
服务器端监听报文,case一下报文头可以了吧[:D]
 
一般在数据库设计时就应该考虑多级单位编号,或设单位编号字段
因为在总公司的数据库中也是要区分子公司的
如果你不想改动数据库结构的话
就在传送前加一个握手的过程,先把公司标志传过去
 
to yansh
不太懂你的意思,能给出例子吗?怎样定义一个报文头?(在网络编程上我是新手啊,
现在公司 马上就要我搞这些东西,否则这项工作又没有了 ,急啊)

to HIGOAL
我是说能否从IP上分别出是那个分公司传送数据的!!
(你说的 那个标志是什么意思?)
 
你到底要怎么串数据,直接用SOCKET吗,每个城市的网段是不同的可以区分开的
 
想从动态IP来区分是很困难的,我说的标志就是子公司事先跟总公司协定好的
一个字符串或数字,在传送真正的数据库文件之前先把此数据传过去,自己建立一
个握手过程(非TCP/IP握手)即可
 
SY 00 00 00 00 00 12 EF
DL 00 22 DE FA 55 32 FE
......
第一个是城市编号沈阳、大连 后面接数据区,最后是校验码
然后对数据区进行解析,入库
 
传数据是怎么传的,如果通过dcom,那么接口应该是做为事务处理,
事务开始前必须告知一些用户信息:比如公司名称、访问密码等,
总之,总公司需要什么信息,就叫它给什么

-------
http://www.8421.org
 
用内存流或者流
 
你要先你想怎么传数据说清楚,否则别人帮不忙
如果不知道怎么传数据,那也说出来
 
to qdyoung
我就是不知道该怎样解决这个问题啊!!(我想过采用dcom来传传送数据,但就是不知道
服务器该怎样解决区分具体是那个分公司传送数据的问题)
如果我采用dcom,那具体该怎样做?(我是新手,大家帮帮忙啊!)
 
定义一个握手协议
 
1. 看delphi得midas例子和李维的书,搞清楚dcom和三层开发是怎么回事
2. 写个简单的dcom服务器,用rds也可以(如果你用ado的话),
把分公司要填写的数据表写在接口中
3. 写客户端程序,用ini或注册表配置分公司名称,连接到服务器,每次传输获取一个
事务id,往日志表插入传输开始时间、公司名称等信息的记录
4. 分公司用tcp/ip拨号到总公司,启用客户端程序开始传输
 
基本上可以分成两种方法:
1.使用Dcom,好处是编程相对比较简单,不用注意底层的东西。坏处是你的忍受
Delphi的bug,比如说汉字问题,连接的释放问题(这是D5的问题,不知D6改进
了没有)。还有出了问题后想找出问题的根源比较困难,除非你对3层非常熟悉。
2.使用tcp/ip,好处是一切都在自己的掌握中。坏处是编程量较大,如果有多个
客户同时连接,得考虑性能问题。
天下没有免费的午餐,得到便利的同时总是要付出代价的,你应该从技术、时间
维护等进行综合考虑。
 
后退
顶部