|
Функции используемой библиотеки WinINet распознают CERN прокси
(HTTP) и TIS FTP шлюзы (FTP). Если установлен Microsoft Internet Explorer, тогда поддерживаются и SOCKS прокси.
Используются настройки прокси - серверов, заданные для MS Interntet Explorer (смотри
"Control panel").
Вы можете использовать следующие
функции:
Потоки в пределах
сессии работают последовательно.
| TCPIP.Name(arg1, arg2, ...) |
Описание |
Синхронизация |
| TCPIP.FTPConnect(host, user, passwd, port, sessionId) |
Функция FTPConnect создает поток (sessionId),
который выполняет подключение к FTP серверу. Если
поток создан (не путайте с успешным
подключением) - возвращает значение true.
Когда поток завершается, он обращается к
Вашему скрипту, и ищет там функцию с именем WM_FTP(sessionId,
type, error, result) - если находит, то запускает ее.
type = "WM_FTPCONNECT"
|
no wait - create thread |
| TCPIP.FTPDisconnect(sessionId) |
Закрывает описатели указанной FTP сессии.
Если такой номер сессии не найден -
возвращает false.
|
wait |
| TCPIP.FtpGetCurrentDirectory(sessionId) |
Функия FtpGetCurrentDirectory создает поток,
который должен узнать текущую директорию
FTP сервера.
Все аналогично FtpConnect, но
type =="WM_FTPGETCURRENTDIRECTORY"
|
no wait - create thread |
| TCPIP.FtpSetCurrentDirectory(sessionId, directory) |
Функция FtpSetCurrentDirectory создает поток,
который должен изменить текущую
директорию на FTP сервере. type == "WM_FTPSETCURRENTDIRECTORY"
Warning: У этой функции код
ошибки всегда 0, независимо от успешности
смены директории. Поэтому смотрите
аргумент result у функции WM_FTP - там будет
действительная текущая директория.
|
no wait - create thread |
| TCPIP.FTPls(sessionId) |
Функция FTPls создает поток, который должен
вернуть список файлов и директорий в
текущем каталоге на FTP сервере. type =="WM_FTPLS"
Аргумент result функции WM_FTP будет
содаржать результат (одной строкой), с
разделителем "|" т. е. "file1|file2|...|fileN"
|
no wait - create thread |
| TCPIP.FTPmkdir(sessionId, dir) |
Функция FTPmkdir создает поток, который
должен создать директорию на FTP сервере (в
текущем каталоге). type == "WM_FTPMKDIR"
|
no wait - create thread |
| TCPIP.FTPrmd(sessionId, dir) |
Функция FTPrmdir создает поток, который
должен удалить директорию на FTP сервере. type
== "WM_FTPRMD"
|
no wait - create thread |
| TCPIP.FTPputfile(sessionId, file) |
Функция FTPputfile создает поток, который
должен записать файл в директорию FTP
сервера. type == "WM_FTPPUTFILE"
|
no wait - create thread |
| TCPIP.FTPgetfile(sessionId, remotefile, newfile) |
Функция FTPgetfile создает поток, который
должен получить файл с FTP сервера и
записать его на диск. type == "WM_FTPGETFILE"
|
no wait - create thread |
| TCPIP.FTPrm(sessionId, file) |
Функция FTPrm создает поток, который должен
удалить файл на FTP сервере. type ==
"WM_FTPRM"
|
no wait - create thread |
| TCPIP.FTPmv(sessionId, existing_file, new_file) |
Функция FTPmv создает поток, который должен
переименовать (переместить) файл на FTP
сервере. type == "WM_FTPMV".
|
no wait - create thread |
Вот пример (вы можете увидеть FTP соединение
с помощью netstat - утилиты коммандной
строки):
//JScript: ftp.w_js
var host = "ftp.host.com"
var user = "user"
var password = "password"
Window.AppendMenu(0,"MF_STRING",100,"Open FTP");
Window.AppendMenu(0,"MF_STRING",200,"Close FTP");
Window.AppendMenu(0,"MF_STRING",300,"Get Current Directory");
Window.DrawMenuBar();
function WM_FTP(sessionId, type, error, result)
{Window.Delete(1);
Window.TextOut(1,50,30,"type: " + type);
Window.TextOut(1,50,50,"sessionId: " + sessionId);
Window.TextOut(1,50,70,"error: " + error);
Window.TextOut(1,50,90,"result: " + result);
Window.UpdateWindow();
};
function WM_COMMAND(id)
{ switch(id){
case 100: TCPIP.FTPConnect(host, user, password, 21, 800);
break;
case 200: TCPIP.FTPDisconnect(800);
Window.Delete(1);
Window.UpdateWindow();
break;
case 300: TCPIP.FTPGetCurrentDirectory(800);
};
};
'VBScript: ftp.w_vbs
host = "ftp.host.com"
user = "user"
password = "password"
Window.AppendMenu 0,"MF_STRING",100,"Open FTP"
Window.AppendMenu 0,"MF_STRING",200,"Close FTP"
Window.AppendMenu 0,"MF_STRING",300,"Get Current Directory"
Window.DrawMenuBar
Function WM_FTP(sessionId,tp,err,result)
Window.Delete 1
Window.TextOut 1,50,30,"type: " & tp
Window.TextOut 1,50,50,"sessionId: " & sessionId
Window.TextOut 1,50,70,"error: " & err
Window.TextOut 1,50,90,"result: " & result
Window.UpdateWindow
End Function
Function WM_COMMAND(id)
Select Case id
Case 100
TCPIP.FTPConnect host, user, password, 21, 800
Case 200
TCPIP.FTPDisconnect(800)
Window.Delete(1)
Window.UpdateWindow
Case 300
TCPIP.FTPGetCurrentDirectory(800)
End Select
End Function
содержание
|