Delphi IdHttp组件+IdHttpServer组件实现文件下载服务
Delphi IdHttp组件+IdHttpServer组件实现文件下载服务


版权声明:本文为博主原创文章,未经博主允许不得转载。
- uses idhttp,IdHTTPServer;
- //idhttp组件提交下载请求
- procedure TVodService.Button3Click(Sender: TObject);
- var
- h:TIdhttp;
- MyStream:TMemoryStream;
- url:string;
- begin
- MyStream:=TMemoryStream.Create;
- h:=Tidhttp.Create(nil);
- url:='http://192.168.0.254:9003/GetIni';//请求地址
- try
- h.get(url,MyStream);//提交请求 except
- Application.Messagebox('网络出错,请检查网络连接','出错框',MB_OK+MB_ICONERROR) ;
- MyStream.Free;
- h.free;
- exit;
- end;
- MyStream.SaveToFile(extractfilepath(application.exename)+'System.ini');
- MyStream.Free;
- h.free;
- end;
- //IdHttpSever组件响应请求
- procedure TVodService.DataModuleCreate(Sender: TObject);//初始化IdHttpServer组件
- var
- hport:integer;
- Binding : TIdSocketHandle;
- begin
- try
- VodHttpServer.Bindings.Clear;
- Binding := VodHttpServer.Bindings.Add;
- Binding.Port:=9003;
- binding.IP:='192.168.0.254';
- VodHttpServer.Active:=true;
- except
- on e:Exception do
- begin
- FrmMain_VodSer.write_Logfile('加载APP设置error '+e.message);
- end;
- end;
- end;
- procedure TVodService.VodHttpServerCommandGet(AThread: TIdPeerThread;
- ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);//响应请求
- var
- ByteSent: Cardinal;
- LocalDoc:string;
- tempstr,ips:string;
- len,sport:integer;
- begin
- tempstr:=ARequestInfo.Document; //获取请求字符串
- ips:=TIdIOHandlerSocket(AThread.Connection.IOHandler).Binding.PeerIP;//获取请求地址
- sport:=TIdIOHandlerSocket(AThread.Connection.IOHandler).Binding.PeerPort;//获取请求端口
- if fileexists(extractfilepath(application.exename)+'System.ini') then
- begin
- LocalDoc:=extractfilepath(application.exename)+'System.ini';
- ByteSent :=VodHttpServer.ServeFile(AThread, AResponseInfo, LocalDoc);
- end else
- begin
- Application.Messagebox('没有找到文件System.ini!','提示框',MB_OK+MB_ICONERROR) ;
- end;
- end;
Delphi IdHttp组件+IdHttpServer组件实现文件下载服务的更多相关文章
- 构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介
构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介 熟悉将用于 Apache Tuscany SCA for C++ 的 API.您将通过本文了解该 API 的主要组 ...
- 使用Topshelf组件构建简单的Windows服务
很多时候都在讨论是否需要了解一个组件或者一个语言的底层原理这个问题,其实我个人觉得,对于这个问题,每个人都有自己的看法,个人情况不同,选择的方式也就会不同了.我个人觉得无论学习什么,都应该尝试着去了解 ...
- delphi中的idhttpserver如何才能收到idhttp发送来的exe\rar文件呢
http://zhidao.baidu.com/link?url=-q2oXqYCKBZ9OgFDEHAcQwQEY_NroHcqGvVfKW67X5sF9LdjAAB_HPXQo04VxStFVS7 ...
- (十七)整合 Zookeeper组件,管理架构中服务协调
整合 Zookeeper组件,管理架构中服务协调 1.Zookeeper基础简介 1.1 基本理论 1.2 应用场景 2.安全管理操作 2.1 操作权限 2.2 认证方式: 2.3 Digest授权流 ...
- django第13天(auth组件,forms组件,中间件,csrf)
django第13天(auth组件,forms组件) auth组件 -auth组件 -auth是什么? -django内置的用户认证系统,可以快速的实现,登录,注销,修改密码.... -怎么用? -( ...
- K8s二进制部署单节点 master组件 node组件 ——头悬梁
K8s二进制部署单节点 master组件 node组件 --头悬梁 1.master组件部署 2.node 组件部署 k8s集群搭建: etcd集群 flannel网络插件 搭建maste ...
- Vue.js学习 Item11 – 组件与组件间的通信
什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有 ...
- Vue中父子组件通讯——组件todolist
一.todolist功能开发 <div id="root"> <div> <input type="text" v-model=& ...
- $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete
一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...
随机推荐
- Java 基础知识整理 (待整理)
JVM之类加载器(ClassLoader)基本介绍 类加载器用于将class文件加载到JVM中去执行.下面介绍类加载器涉及到的基本概念和加载基本过程. 一.Java虚拟机与程序的生命周期 在运行Jav ...
- 15年6月8号 jsp内置对象总结
jsp的内置对象:主要有三个request.session.application:而且三者之间有各自不同的特点,在不同的情况下,使用不同的对象会有不同的效果, 其中: 1.request(特点):一 ...
- ECharts-第一篇最简单的应用
1.简单演示一个饼状图 准备好echarts-all.js 2.编写页面代码 <!DOCTYPE html> <html> <head> <meta char ...
- linux安装curl出错
今天配置一台server的php支持curl的时候, 出现如下报错 checking for cURL in default path... not foundconfigure: error: Pl ...
- 十二、支持向量机(Support Vector Machines)
12.1 优化目标 参考视频: 12 - 1 - Optimization Objective (15 min).mkv 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都 ...
- ex3 多分类和神经网络
介绍 在本练习中,您将实现一对多逻辑回归和神经识别手写数字的网络.在开始编程之前练习,我们强烈建议观看视频讲座并完成相关主题的复习问题.要开始练习,您需要下载起始代码并将其内容解压缩到要完成练习的目录 ...
- HNUSTOJ-1696 简单验证码识别(模拟)
1696: 简单验证码识别 时间限制: 2 Sec 内存限制: 128 MB 提交: 148 解决: 44 [提交][状态][讨论版] 题目描述 验证码是Web系统中一种防止暴力破解的重要手段.其 ...
- MATLAB:非线性规划fmincon
1.非线性规划的形式: 其中x是一个列向量,st中前两项为线性约束条件,后两项为非线性约束条件. 在MATLAB中fmincon是用于求解非线性多远函数的最小值的函数,这里介绍fmincon的其中一种 ...
- 本地局域网MySQL数据库连接方法(Navcat权限设置)
情景: 当同一局域网环境中,需要协同开发并涉及到本地数据库互联情况,有关权限需要开放! 设置流程: 1.受访端连接 打开Navcat>>>>点击本地数据库>>> ...
- 2018-8-10-C#-TimeSpan-时间计算
title author date CreateTime categories C# TimeSpan 时间计算 lindexi 2018-08-10 19:16:51 +0800 2018-06-1 ...