D
dv11
Unregistered / Unconfirmed
GUEST, unregistred user!
参考:
Client:TSocketConnection 和Server: Scktsrvr关系----压缩数据传输
时间: 2006-08-10 来自:copy_paste
一直用SocketConnection和服务端的传输数据在三层数据库中,从来没有注意到它们之间的数据传输,只是想着,管它了,网络的事,前段时间在Delphi中的Demos中发现Demos/Midas/Intrcpt.dpr例子,呵呵,再看了半天的VCL发现可以将Client端发送的给Server的数据,和Server发送给Client的数据是可以进行压缩的。呵呵,不敢藏私,Share给大家。
1:
准备工作,先delphi光盘中的/info/extras/zlib/zlib.pas进行编绎,然后copy 到lib路径中,因为要压缩数据,必须要有压缩功能,这个delphi已经自带,它是基于流的方式对接口IDataBlock(TDataBlock实现,其实就是对TMemoryStream的操作)数据进行压缩和解压的。做了这个后,才能进行下面的工作。
2:
Open /Demos/Midas/Intrcpt/Intrcpt.dpr
complier....(如没有做第一步,嘿嘿...)
生成Intrcpt.dll
将Intrcpt.dll copy to System directory,或者你的程序下面。
注册它:regsrvr32 Intrcpt.dll (为什么,这个嘛...)
记住Intrcpt.dpr的那个GUID,你也可以自己重新生成一个(按Shift+Ctrl+G)
3:
Server:
Open scktsrvr.exe,相信各位都很熟悉那界面,端口(TListbox),Thread Cache Size(TEdit), GUID(TEdit),好,我们要做的事,就是将注册的Intrcpt.dll那个GUID填到这个GUID(TEdit)框框中,
只需填自己程序的的那个端口的GUID啊,别乱填,如果有别人用这个程序,出了什么,别找我。OK,Apply.
Client:
你写的程序中肯定有TSocketConnection,它有个属性InterceptGUID: string;好了,将Intrcpt.dll的GUID填上去,它是跟Server中的一样的。OK.还有别忘了,Regsrvr32 intrcpt.dll 在你的客户端。不然,程序虽不会raise,但是Server传过来的数据是压缩的....
好了,呵呵。就这些了。3步骤,很清楚吧(不会吧,还不懂,倒)
但是Intrcpt.log记录不到内容,怎么回事情呀?
Client:TSocketConnection 和Server: Scktsrvr关系----压缩数据传输
时间: 2006-08-10 来自:copy_paste
一直用SocketConnection和服务端的传输数据在三层数据库中,从来没有注意到它们之间的数据传输,只是想着,管它了,网络的事,前段时间在Delphi中的Demos中发现Demos/Midas/Intrcpt.dpr例子,呵呵,再看了半天的VCL发现可以将Client端发送的给Server的数据,和Server发送给Client的数据是可以进行压缩的。呵呵,不敢藏私,Share给大家。
1:
准备工作,先delphi光盘中的/info/extras/zlib/zlib.pas进行编绎,然后copy 到lib路径中,因为要压缩数据,必须要有压缩功能,这个delphi已经自带,它是基于流的方式对接口IDataBlock(TDataBlock实现,其实就是对TMemoryStream的操作)数据进行压缩和解压的。做了这个后,才能进行下面的工作。
2:
Open /Demos/Midas/Intrcpt/Intrcpt.dpr
complier....(如没有做第一步,嘿嘿...)
生成Intrcpt.dll
将Intrcpt.dll copy to System directory,或者你的程序下面。
注册它:regsrvr32 Intrcpt.dll (为什么,这个嘛...)
记住Intrcpt.dpr的那个GUID,你也可以自己重新生成一个(按Shift+Ctrl+G)
3:
Server:
Open scktsrvr.exe,相信各位都很熟悉那界面,端口(TListbox),Thread Cache Size(TEdit), GUID(TEdit),好,我们要做的事,就是将注册的Intrcpt.dll那个GUID填到这个GUID(TEdit)框框中,
只需填自己程序的的那个端口的GUID啊,别乱填,如果有别人用这个程序,出了什么,别找我。OK,Apply.
Client:
你写的程序中肯定有TSocketConnection,它有个属性InterceptGUID: string;好了,将Intrcpt.dll的GUID填上去,它是跟Server中的一样的。OK.还有别忘了,Regsrvr32 intrcpt.dll 在你的客户端。不然,程序虽不会raise,但是Server传过来的数据是压缩的....
好了,呵呵。就这些了。3步骤,很清楚吧(不会吧,还不懂,倒)
但是Intrcpt.log记录不到内容,怎么回事情呀?