使用ftp上传文件失败,究其原因是由于ftp server程序使用的控制端口21被占用,所以在启动ftp server程序之前做如下工作:
1.检查防火墙是否关闭;
2.检查ftp控制端口21是否被占用。
实现方法:
1.在Windows XP环境下,通过代码查询注册表:SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile下的EnableFirewall的值,1防火墙打开,0防火墙关闭。如果防火墙打开,提示用户关闭防火墙。
2.通过调用批处理文件,关闭占用端口21的进程。
批处理文件kill21.bat的内容如下:
@echo off
setlocal enabledelayedexpansion
for /f "delims= tokens=1" %%i in ('netstat -aon ^| findstr "21"') do (
set a=%%i
goto js
)
:js
taskkill /pid "!a:~71,5!"
如果单存调用批处理文件,会显示命令提示窗口的黑框,为了不显示提示串口,需要使用run.vbs文件调用批处理文件kill21.bat,run.vbs文件内容如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c Kill21.bat",0
在代码中,ShellExecute(NULL,L"open",L"run.vbs" ,NULL, NULL, SW_SHOWNORMAL);调用run.vbs文件,就不会显示命令行窗口。需要包含头文件shellapi.h。
本文详细介绍了如何解决在使用FTP上传文件时遇到的问题,即FTP server程序使用的控制端口21被占用导致的失败情况。通过检查并关闭防火墙,以及终止占用端口21的进程,可以有效解决此问题。文章还提供了Windows XP环境下查询注册表、调用批处理文件和VB脚本来实现这一过程的步骤。
1527

被折叠的 条评论
为什么被折叠?



