找回密码
 加入
搜索
查看: 5678|回复: 6

[网络通信] 关于FTP连接Linux服务器的超时问题

  [复制链接]
发表于 2010-8-22 17:52:54 | 显示全部楼层 |阅读模式
本帖最后由 xiehuahere 于 2010-8-22 18:04 编辑

想做一个小工具,使用FTP连接到基于嵌入式Linux的网络设备(服务器端)上做一些文件操作。
若设备未正确连接,_FTP_Connect()函数返回错误的超时时间比较长,GUI界面无响应的现象就比较明显(另起一个线程来做相关操作好像有点复杂),有没有办法设置timeout使其短些?
也不知道能不能使用RunAs()带参数运行服务器上的shell脚本。帮助上说RunAs的一个参数program,都是(EXE, BAT, COM, or PIF) 这些windows下的可执行文件。
发表于 2010-8-22 18:02:08 | 显示全部楼层
_FTP_Connect()不要直接使用于GUI控件
可以使GUI控件响应一个AdlibRegister函数
AdlibRegister函数里用_FTP_Connect()

另外用多进程也不麻烦
发表于 2010-8-22 18:15:51 | 显示全部楼层
本帖最后由 republican 于 2010-8-22 18:29 编辑

我错了,Wininet设置超时是无效的。

so, 最简单的方法,把Linux服务器上的超时时间减少。

不想这么做的话,请使用Wininet异步模式,再在本程序中设置定时器,到时间后回调断开会话。
 楼主| 发表于 2010-8-22 18:20:44 | 显示全部楼层
本帖最后由 xiehuahere 于 2010-8-22 18:34 编辑

没用过AdlibRegister(),是不是需要配合 AdlibUnregister() 一起使用?
帮助里说,AdlibRegister()注册的函数中不能含有阻塞性的操作:execution must be non blocking, avoid ...Wait(), MsgBox(), InputBox() functions。
应该不适用吧
发表于 2010-8-22 18:35:12 | 显示全部楼层
LZ的意思是想在连接的时候GUI有响应?

我这给两个想法:
1. 构造特殊的消息模式。

2. 干脆别响应GUI了,隐藏它吧。在单进程下,上面做的都是无用功,反正都阻塞掉了。呵呵。
 楼主| 发表于 2010-8-22 18:38:20 | 显示全部楼层
谢谢楼上的,我也不是想要GUI有响应,就是想超时时间可以短些,用户体验好些。
我还是去尝试一下Wininet异步模式吧~~
多谢各位的帮助。
发表于 2010-8-22 19:35:01 | 显示全部楼层
AdlibRegister()仍然会存在卡的问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-1 07:01 , Processed in 0.076751 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表