Что нового

Как узнать, проверить подключение к ftp ?

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Привет я написал этот сценарий, но это не надежно. У вас есть другие предложения ?

Код:
#include <FTPEx.au3>

$server = 'server'
$username = 'user'
$pass = 'pss'

$Open = _FTP_Open('FTP')
$Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
While 1
	Sleep(10000)
	If $Conn = 0 Then
		MsgBox(64, 'Info', 'NO!', '')
	Else
		MsgBox(64, 'Info', 'OK!', '')
	EndIf
WEnd
 

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Я бы
Код:
Sleep(10000)

переместил в конец цикла.
А так, на мой взгляд,- все нормально.
 
Автор
A

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Нет то же самое, отключил интернет а скрипт выдают съобщение ОК...
 

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Гм.. У меня все работает. Win 7 32bit, Pro.
Немного подкорректированный код:
Код:
#include <FTPEx.au3>
OnAutoItExitRegister('ProgramExit')

$server = 'ftp.csx.cam.ac.uk'
$username = ''
$pass = ''

$Open = _FTP_Open('FTP')
$Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
While 1
    If $Conn = 0 Then
        MsgBox(64, 'Info', 'NO!', '')
    Else
        MsgBox(64, 'Info', 'OK!', '')
    EndIf
    Sleep(10000)
WEnd

Func ProgramExit()
	_FTP_Close($Open)
	ConsoleWrite('FTP session closed' & @CRLF)
EndFunc
 
Автор
A

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Нет то же самое.... Win 7 32bit, Ultimate...

Но вот так, уже работает... но это решение нехороший...
Код:
#include <FTPEx.au3>
OnAutoItExitRegister('ProgramExit')

$server = 'ftp.csx.cam.ac.uk'
$username = ''
$pass = ''

While 1
	$Open = _FTP_Open('FTP')
	$Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
    If $Conn = 0 Then
        MsgBox(64, 'Info', 'NO!', '')
    Else
        MsgBox(64, 'Info', 'OK!', '')
    EndIf
    Sleep(10000)
WEnd

Func ProgramExit()
    _FTP_Close($Open)
    ConsoleWrite('FTP session closed' & @CRLF)
EndFunc
 
Автор
A

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Если слишком часто ассоциируется (Connect) сценарий FTP-сервер то сервер может произойти сбой (я не уверен) потому что этот скрипт будет используется многими компьютеры...
 

kasper_sky

Antivirus
Сообщения
116
Репутация
1
armenxxx1
Вы пользуетесь переводчиком, что ли? Не могу вас понять. Если можете - напишите на английском.
Я так понял, что вы хотите этот скрипт использовать на нескольких компьютерах. И вы побаиваетесь, что из-за частого и одновременного(?) подключения FTP-сервер может быть недоступен?
Если так, то могу вас уверить: все FTP-серверы поддерживают одновременное подключение многих клиентов.
 
Автор
A

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Я так понял, что вы хотите этот скрипт использовать на нескольких компьютерах. И вы побаиваетесь, что из-за частого и одновременного(?) подключения FTP-сервер может быть недоступен?

Да, я ета хотел сказать/сделать. Когда я запускаю такой скрипт.

Код:
#include <FTPEx.au3>

$server = 'ftp.csx.cam.ac.uk'
$username = ''
$pass = ''

While 1
    $Open = _FTP_Open('FTP')
    $Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
    If $Conn = 0 Then
        MsgBox(64, 'Info', 'NO!', '')
    Else
        MsgBox(64, 'Info', 'OK!', '')
    EndIf
    ;Sleep(10000)
    Sleep(1000)
WEnd


FTP-сервер становится недоступен и не могу загружать файлы на него например с FileZilla или с другой скрипт.
 

kasper_sky

Antivirus
Сообщения
116
Репутация
1
armenxxx1
Значит, дело в настройках самого сервера. Скрипт-то работает.
 
Автор
A

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Нет, сервер все нормально, просто такие действия не считается нормальным... Скрипт не должен подключатся FTP-сервер так часто надо просто написать скрипт который проверяет подключения, а не в любое время подключатся к FTP-сервер...

Теперь мысль о такой сценарий, но тоже не очень хороши...

Код:
#include <FTPEx.au3>

$server = 'ftp.csx.cam.ac.uk'
$username = ''
$pass = ''

$Open = _FTP_Open('FTP')
$Conn = _FTP_Connect($Open, $server, $username, $pass, 1)

While 1
	$dir = _FTP_DirCreate($Conn, "test")
    If $dir = 0 Then
        MsgBox(64, 'Info', 'NO!', '')
		$Open = _FTP_Open('FTP')
		$Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
    Else
		_FTP_DirDelete($Conn, "test")
        MsgBox(64, 'Info', 'OK!', '')
    EndIf
    ;Sleep(10000)
    Sleep(1000)
WEnd
 
Автор
A

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Забыл сказать, что я нашел решение.

Код:
#include <FTPEx.au3>

Global $server = 'Server'
Global $username = 'User'
Global $pass = 'Pss'

While 1
	_FTP_DirGetCurrent($Conn)
    If @error Then
		MsgBox(64, 'Info', 'NO!', '')
		Connect()
    Else
		MsgBox(64, 'Info', 'OK!', '')
    EndIf
	Sleep(10000)
WEnd

Func Connect()
	Local $Open = _FTP_Open('FTP')
	Global $Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
	If @error Then
		Sleep(2000)
		Connect()
	EndIf	
EndFunc


Тема решена.
 
Верх