62 lines
2.8 KiB
Plaintext
62 lines
2.8 KiB
Plaintext
|
|
The RdcSdkTestServer sample:
|
|
|
|
This sample is a DCOM server to allow remote users to request signatures
|
|
for any accessible files. This server uses the MSRDC to generate
|
|
signatures, and then allows clients to read the signature and file data.
|
|
|
|
This sample Server has several limitations. A few of the limitations are as
|
|
follows:
|
|
|
|
1. The generation of signatures is synchronous - the client has to wait for
|
|
signatures to be generated. A multithreaded client can make several calls
|
|
into the server for different files, but each client thread will wait for
|
|
the corresponding server thread to complete signature generation.
|
|
|
|
2. It does not try to detect and resolve conflicts - such that if several
|
|
clients request the same file, only one of the clients will succeed.
|
|
|
|
3. It stores the signature files as additional files in the same directory as
|
|
the file begin transferred. For example, if the client
|
|
requests "C:\temp\foo.txt", additional files will be created:
|
|
"C:\temp\foo.txt_1.sig", "C:\temp\foo.txt_2.sig", "C:\temp\foo.txt_3.sig".
|
|
These files are always deleted by this sample server.
|
|
|
|
4. The generated signatures files may not be secured as well as the
|
|
source file. This sample doesn't attempt to match or surpass the security
|
|
settings of the file being transferred.
|
|
|
|
|
|
The RdcSdkTestClient sample:
|
|
|
|
This sample works with the RdcSdkTestServer DCOM server and the MSRDC
|
|
in-proc COM server to transfer files from a remote machine to the local
|
|
machine. The RdcSdkTestServer and MSRDC server must be installed on both
|
|
machines first (using regsvr32.exe). The client will connect to the
|
|
RdcSdkTestServer on the remote machine, and on the local machine. The
|
|
client uses RdcSdkTestServer to generate signatures, and read the source
|
|
signature files, the seed signature files, the source file and the seed
|
|
file. The client then uses the MSRDC server directly to compare the sets
|
|
of signatures and to create the target file.
|
|
|
|
This sample Client has several limitations. A few of the limitations are as
|
|
follows:
|
|
|
|
1. It requires that complete path names (not UNC) be used for both the remote
|
|
and local files.
|
|
|
|
2. Primitive similarity is supported. Each time the client transfers a file,
|
|
its similarity traits are added to "RdcSampleTraitsTable", and the
|
|
fileindex is saved in a file on disk -- "RdcSampleFilenameTable".
|
|
|
|
The SimpleFilenameTable implementation is not robust. If this file gets
|
|
corrupted, it must be deleted.
|
|
|
|
3. It can only transfer one file at a time.
|
|
|
|
4. It doesn't verify the correctness of the target file. It is expected
|
|
that a complete application making use of RDC would checksum the entire source
|
|
and target files to ensure that they match. This check serves to catch any
|
|
problems that may have been missed if cached signatures files have gotten out
|
|
of sync with the files, and application bugs.
|