DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: szliyu112358
今日帖子: 60
在线用户: 20
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 magiewang (magiewang) ▲▲▲△△ -
普通会员
2021/10/18 12:25:34
标题:
求教idftpserver如何向idftpclient发送指令? 浏览:1047
加入我的收藏
楼主: 求教idftpserver如何向idftpclient发送指令?
需要像idtcpclient一样开条线程循环读取SERVER指令嘛?

谢谢!!!!!!!!!!
----------------------------------------------
-
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2021/10/18 15:48:41
1楼: ftp有既定协议的,怎么可能你想怎么来就怎么来
----------------------------------------------
--
作者:
男 luckyso999 (luckyso) ★☆☆☆☆ -
盒子活跃会员
2021/10/19 14:26:46
2楼: 客户端和服务端都是自己写的,还不是你想怎么样就怎么样
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/10/20 10:04:26
3楼: 1. 既然用 FTP,就用 FTP 的标准。你如果另外自己发命令,不符合 FTP 标准。Indy FTP 的服务器端和客户端的控件,都实现了 FTP 的通讯协议,如果用 FTP 功能,你好像没必要自己另外发命令。即便你要发命令,也应该在 Indy 的代码框架上做。反正它有源代码的。

2. 发命令,和是否开一条线程没关系。发命令本身,是你要搞清楚在 TIdFTPServer 上面,使用什么方法或者函数去发。至于调用那个方法或函数,用什么线程,是另外一回事。写代码的人,一定要搞清楚,你的一段代码,是哪个线程在执行。

3. FTP Server 本身是 TCP Server,TIdFTPServer 是基于 TIdTCPServer 的。所以你应该搞清楚的是 TIdTCPServer 的用法和代码架构。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/10/20 10:05:21
4楼: 4. TIdTCPServer 实际上有一个 OnExecute 事件,这个事件,实际上是服务器端的线程循环触发的,要向客户端发送数据,就是在这个 OnExecute 里面写代码。
----------------------------------------------
-
作者:
男 magiewang (magiewang) ▲▲▲△△ -
普通会员
2021/10/20 16:38:28
5楼: @pcplayer 谢谢pcplayer大神指点

之所以要向客户端发送指令,因为希望服务端能够控制客户端那边做出传输那些指令,因为设计原因,客户端反而是无人工操作的。

之前用TIdTCPServer和TIdTCPClient写的代码,也是用来传输文件用的,但使用过程中总是隔些时间就会出现各种莫名其妙的问题,可能功底太差吧,试用INDY FTP后感觉比自己写的传输的健壮很多,所以想用INDY FTP代替自己写的。

因为FTP本身是2个端口,一个指令端口一个传输端口,所以想直接用FTP的指令端口实现服务端发控制指令给客户端,看了下TIDFTPCLEINT代码,它是发送指令后用ReadLnWait等待服务器反馈的,所以想开条线程循环读取服务端指令,但这样做又会影响FTP本身正常的运行,所以想咨询各位大神,是否单独再搞个TIdTCPServer和TIdTCPClient再开一个端口用来服务器端给客户端下指令。
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/10/20 16:45:58
6楼: 你的需求,你单独搞一个 TCP Server 和 TCPClient 来做你自己的命令传输,比在 FTPServer 上面搞,更正规。

就好比你买了个汽车,想要出去玩的时候还可以划船,不如单独买个船用汽车拖出去。如果非要把汽车改成又是汽车又是船,麻烦太多了。
----------------------------------------------
-
作者:
男 magiewang (magiewang) ▲▲▲△△ -
普通会员
2021/10/21 9:12:16
7楼: 谢谢pcplayer,是的可能想法太天真,本想省个端口的,不然服务器要开3个基础端口了。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS