远程SOCKET数据传输解决方案
1、用VPN,直接访问数据库。
2、开个FTP服务,先将数据以特定格式存储到文件上传;服务器用程序导入数据;
3、开个TCP服务程序接收数据并写入数据库。
4、WebService;
5、NetRemoting.
我的几点想法:
1.把数据输出成 XML 文件,DataSet可以直接序列化为 XML
2.用socket把 XML 文件传回服务器,使用 MD5 来进行文件传输正确性的校验
3.服务器端把 XML 反序列化为 DataSet 后存回数据库
PS:如果数据很多,XML 文件会很大,那么建议一张表就输出成一个 XML,以免因为 MD5 校验失败导致要重新传全部数据
MD5校验应该是可靠的,所以数据完成性完全可以保障
以上方法完全可以用 .NET 内置的类来实现,比较方便
缺点的话,我觉得就是把大量数据放入 DataSet 会消耗大量内存
XML+MD5描述--FTP传输-->效验、导入
简单,好用。我们公司上次那个项目就这样做的
1)用webservice最简单
2)如果用socket,直接采用一个连接一个线程方法,5个以上的连接服务器没问题,成千上万的话就用完成端口
这和.net无关...这样的情况我相信会存在的.既然是C/S程序,LZ请先分析问题,这两分钟究竟有多少时间用在了数据库查询中,有多少时间是使用在了网络传输中?可以加一些代码统计一下
如果是数据库时间的比重大,请优化数据库,比如建个索引什么的.网络时间比重大的话..比较麻烦了
唯一的解决方式就是减少传输数据量,有两种可能的优化方式
1.分页,然后在传输到客户端
2.无损压缩要传输的数据,到客户端在解压缩...
浙公网安备 33010602011771号