Delphi Labs: DataSnap XE Transport Filters

Posted by on in Blogs
Delphi Labs keep going! I have just published the latest episode in the "DataSnap XE" serie on communication filters. In DataSnap architecture you can use different communication protocols, like TCP/IP, HTTP or HTTPS, and you can also use transport filters that make it possible to programmatically access the raw stream of bytes that are transmitted between client and the server over the wire.

Delphi XE comes with three DataSnap communication filters preinstalled: two for encryption and one for compression.

In this lab we are going to build a simple system consisting of a server and a client application. Both applications will be standalone Delphi VCL Forms applications and they are going to communicate using TCP/IP as the transport protocol and use ZLib compression filters.

Next week I am off for winter holiday, so there will be no new article, but I am sure to have this background thread running somewhere at the back of my brain conceiving new ideas for the next, and next, and next episode...

"Delphi Labs: DataSnap XE - Transport Filters"

Gold User, Rank: 9, Points: 364
Crazy about Delphi Programming!


  • Guest
    Keith Thursday, 17 February 2011

    Thanks Pawel,

    I thinks is the a powerful technique. I plan on using it myself.

    Keep up the good work.

  • Guest
    Paweł Głowacki Friday, 18 February 2011

    @Keith, Go for it:-)

  • Guest
    Dobrin Petkov Tuesday, 27 March 2012

    Hi Pawel,

    I want to tell you that your presentation here in Sofia, Bulgaria is one of the reasons to do an update of my Delphi XE to Delphi XE2.
    Thanks a lot - I don't regret for now.
    Also - your posts, videos and source code examples about DataSnap and XE2 are very useful for me and my current projects.

    I have some questions about transport filters and especially about RSA properties.
    What exactly means "UseGlobalKey=true" and what if "UseGlobalKey=false"?
    Can you do an example about the second case?
    Sorry if there (in the Delphi help) has description about this values but I can't find it.
    Can we use RSA encryption with sertificates and if the answer is yes - how?
    I ask about sertificates because I have no feeling of security with the usage of "UseGlobalKey=true".
    Is this transport filter secure for the "man in the middle" attack?


    I apologize for my bad English.

    Best regards
    Dobrin Petkov

  • Guest
    Pawel Wednesday, 28 March 2012

    Hi Dobrin,
    Thanks a lot for kind words.
    Your English is great :-)
    I will check the use of "UseGlobalKey" setting and let you know.
    best regards,

  • Guest
    Dobrin Petkov Friday, 6 April 2012

    Hi Pawel,

    Believe me the usage of RSA encryption with sertificates is one of the most interesting problems for me now. I'll look forward your post.

    I have another question but I do not know where to ask for it.
    How the server can notify the client that an event has occurred in the middle of the implementation of a method? If the execution of a method (math calculations for example) takes a long time - how the server can send the client information that it has undergone part xxL?

    I know you are busy person, so I hope my questions not to sound too roughly (or presumptuous).


    Best regards - your fan and follower

  • Guest
    Dobrin Petkov Thursday, 10 May 2012

    Hi Pawel,

    I saw your very useful post from "Delphi Labs" and from
    I learned many things. Thanks a lot.

    Is there any news on what exactly means "UseGlobalKey=true" and what if "UseGlobalKey=false"?
    If you're busy - can you tell me the contacts for more details and or questions?

    Best regards
    Dobrin Petkov

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: