【背景】最近做了一个双机备份就是服务器上有个文件夹会接收客户端传来的文件而我们要做的就是同步这台服务器和另一台备用服务器上的文件为了实现这个功能我们使用的tcp点对点传输【开发环境】VS2005【实现原理】要实现同步要解决两个问题一个是获取本地服务器上上传上来的文件二是实现两台机器间的文件传输第一个问题我们用的FileSystemWatcher这个可以监视指定文件夹下的文件变动然后我们把变动的文件信息记录到数据库在指定的时间间隔后同步两台机器的文件第二个问题我们用的tcp文件传输我们按照一定的原则通过传输消息来告知备份服务器的要传输的文件名称和大小然后传输文件【代码】1FileSystemWatcher监视文件变动的就不介绍了很简单的wi
form控件应用2为了完成文件传输我做了一个TcpHelper类库其中包括TcpCommo
TcpClie
tHelperTcpListe
erHelper三个类TcpCommo
主要实现了文件传输时用的一些公共的方法比如发送接收文件发送接收消息和文件hash的计算TcpCommo
usi
gSystemusi
gSystemCollectio
sGe
ericusi
gSystemTextusi
gSystemSecurityCryptographyusi
gSystemIOusi
gSystemNetSockets
amespaceXpwyBackupPTcpHelperi
ter
alclassTcpCommo
privatestaticreado
lyi
t_blockLe
gth5001024summary计算文件的hash值summaryi
ter
alstri
gCalcFileHashstri
gFilePathMD5CryptoServiceProvidermd5
ewMD5CryptoServiceProviderbytehash
fusi
gFileStreamfs
ewFileStreamFilePathFileModeOpe
FileAccessReadFileShareRead4096hashmd5ComputeHashfsretur
BitCo
verterToStri
ghashsummary发送文件summaryparam
ame