一个简单实际的Windows服务:实现本地数据上传到服务器

功能:实现本地数据上传到远程服务器

操作实现:

1、发送本地ID到远程服务器进行身份验证,验证成功则可Get到本地需要发送的数据的ID,例如:

本地发送身份ID:key123,验证成功,则远程服务器匹配到该ID所包含的数据条目,例如传回7个ExdID。

2、收到7个ExdID后,本地需要传输数据库中许多数据中的这7个ExdID所对应的数据到远程服务器,远程服务器将收到的数据保存、更新到远程数据库中。

注意问题:

1、为保证带宽负载轻松,不能频繁往远程服务器传输数据。

2、考虑到断网情况,断网之间的数据不能丢失,需要完整且一个不漏的传输到远程服务器。

3、不要传输本地未更新的数据到远程服务器,本地数据中有一个更新时间字段。

4、只能查询数据库中的记录,不能进行其他任何操作。

解决方法:

1、设置定时器,例如每5s进行一次连接。

2、将第一次发送的数据写入一个txt文件,包含内容有ExdID, 更新时间。

3、每次从数据库中获取到数据后,将其与txt文件中的数据进行比对,若相同ExdID的数据的更新时间也相同,则此数据删除,剩下的数据更新到txt文件中去并传输到远程服务器。

4、断网后,将数据库中所有的记录都保存到本地文件,第一次取出的数据额外新建一个txt文件。每次取出的数据在保存时应该建立一棵树,格式为先以年建文件夹,年文件夹里建立月文件夹,月文件夹里建立该月每日的文件为一个文件,用于存储从数据库中取出但是未发送到远程服务器中的数据,且为了减少文件保存的数据大小,每次保存前与txt文件中的数据进行比对,若相同ExdID的数据的更新时间也相同,则此数据删除,剩下的数据更新到txt文件中去并保存到日文件中去。当网络重新连接上后,将发送本地文件中的数据到远程服务器。

时间: 2024-11-10 01:12:25

一个简单实际的Windows服务:实现本地数据上传到服务器的相关文章

使用Navicat for MySQL把本地数据库上传到服务器

服务器系统基本都是基于linux的,这个数据库上传的方式适用于linux的各种版本,比如Ubuntu和Centos(尽管这两个版本各种大坑小坑,但至少在数据库传输上保持了一致性) 当然本地数据库上传到服务器的前提是,服务器也已经安装好了MySQL数据库 1.在服务器端: 1.linux如何查看mysql是否启动 service mysqld status mysqld is stopped 那就说明mysql服务是停止状态 mysqld is running 那就说明mysql服务是启动状态 2

C# winform把本地文件上传到服务器上,和从服务器上下载文件

昨天在做项目过程中遇到需要把本地文件上传到服务器上的问题,在这里记录一下,方便大家互相学习! /// <summary> /// 上传文件方法/// </summary> /// <param name="filePath">本地文件所在路径(包括文件)</param> /// <param name="serverPath">文件存储服务器路径(包括文件)</param> public voi

iOS视频压缩存储至本地并上传至服务器-b

最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视频原封不动地从相册拿出来放到沙盒路径下,目的是拿到视频的NSData以便上传 这里我传了一个URL,这个URL有点特别,是相册文件URL,所以我说过只针对相册视频进行处理 //将原始视频的URL转化为NSData数据,写入沙盒     + (void)videoWithUrl:(NSString *

iOS视频压缩存储至本地并上传至服务器

最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视频原封不动地从相册拿出来放到沙盒路径下,目的是拿到视频的NSData以便上传 这里我传了一个URL,这个URL有点特别,是相册文件URL,所以我说过只针对相册视频进行处理 //将原始视频的URL转化为NSData数据,写入沙盒 + (void)videoWithUrl:(NSString *)url

windows git把本地项目上传到github

http://www.git-scm.com/download/ git下载 生成sshkey ssh-keygen -t rsa -b 4096 -C "[email protected]" 添加到github中 官方帮助:https://help.github.com/articles/generating-ssh-keys/ 这里有个操作:http://www.tuicool.com/articles/j2iqaa windows   如出现 Permission denied

借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。

rz 是将window文件传到linux服务器上,到执行rz命令的目录 sz 可以将linux文件发送到windows上,可以选择目录. https://www.google.com/ncr 登录一下会有惊喜的 ubuntu 安装 shadowsocks https://github.com/shadowsocks/shadowsocks-qt5/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97 在Ubuntu Linux下怎样安装QQ http://cuiqi

c#将本地文件上传至服务器(内网)

//连接 string serverFolder = @"\\192.168.1.26\Invoice";//服务器的共享文件夹路径 string PWD = "666";//远程服务器密码 status = connectState(serverFolder, "Administrator", PWD); if (status) { //共享文件夹的目录 DirectoryInfo theFolder = new DirectoryInfo(s

git eclipse 本地commit 到本地 但上传到服务器失败

由于各个项目开发人员不同  有可能用了别人的账户 git 项目   由于账户密码有保存功能   所以在更新自己的项目时可能出现如下情况  在configue下修改自己的用户名即可

C#制作Windows service服务系列二:演示一个定期执行的windows服务及调试(windows service)

系列一: 制作一个可安装.可启动.可停止.可卸载的Windows service(downmoon原创) 系列二:演示一个定期执行的windows服务及调试(windows service)(downmoon) 系列三: windows service系列三--制作可控制界面的windows service 一.经常有人问起如何让程序定期自动执行? 除了像系统任务和SQL JOB/DTS等都可以满足不同的用户需求外,这里演示了如何做一个简单的windows serivce的框架.主要的功能是按照