Ошибка: "unable to connect to remote host"
При этом виснет программа.
Нашёл такое разьяснение, как мне кажется причина в этом:
http://www.visualbasicsource.net/KnowledgeBase/q173265.txt
глючная MSINET.OCX, скачал, постави но ничего не изменилось.
Как можно подконектится? Где ошибка?
Меня интересует как можно сохранить файл(или данные) на сервере.
Может какой нибудь Upload, посоветуйте?
Каким образом? Мне нужно передать файл на сайт. А для этого компонента, как я понмаю нужна серверная и клиентская часть т.е. он подойдёт для прямой перекачки файлов. Разве можно таким образом передать файлы?
Если да, то приведите пример.
Апи почему-то у меня даже не пытается запрос отправлять просто пишет ошибку) вот например в чём проблемма?
Private Declare Function InternetOpen _
Lib "wininet.dll" Alias "InternetOpenA" ( _
ByVal sAgent As String, _
ByVal nAccessType As Long, _
ByVal sProxyName As String, _
ByVal sProxyBypass As String, _
ByVal nFlags As Long) As Long
Private Declare Function InternetConnect _
Lib "wininet.dll" Alias "InternetConnectA" ( _
ByVal hInternetSession As Long, _
ByVal sServerName As String, _
ByVal nServerPort As Integer, _
ByVal sUserName As String, _
ByVal sPassword As String, _
ByVal nService As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Private Declare Function FtpPutFile _
Lib "wininet.dll" Alias "FtpPutFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszLocalFile As String, _
ByVal lpszRemoteFile As String, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean
Private Declare Function InternetCloseHandle _
Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Sub Command1_Click()
hINetSession = InternetOpen("MyFTPClient", 0, vbNullString, vbNullString, 0)
hSession = InternetConnect(hINetSession, "ftp.log3.jino - net.ru", "21", "log3", "pass", INTERNET_SERVICE_FTP, 0, 0)
If FtpPutFile(hSession, "c:\log.txt", "log.txt", 1, 0) = False Then
Label1.Caption = "!!!"
Call InternetCloseHandle(hSession)
Call InternetCloseHandle(hINetSession)
End If
End Sub
Он даже и не пытается конектится, может это для виндовса 98?))) Хотя смотрел wininet.dll - есть такая) Но не работает!
Опаньки, спасибо всем я разобрался, понял свои ошибки)) Выкладываю рабочую версию... может кому пригодится))
Это модуль:
Public Declare Function InternetConnect _
Lib "wininet.dll" Alias "InternetConnectA" ( _
ByVal hInternetSession As Long, _
ByVal sServerName As String, _
ByVal nServerPort As Integer, _
ByVal sUserName As String, _
ByVal sPassword As String, _
ByVal nService As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Public Const INTERNET_SERVICE_FTP = 1
Public Declare Function FtpGetFile _
Lib "wininet.dll" Alias "FtpGetFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, _
ByVal fFailIfExists As Boolean, _
ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean
Public Declare Function FtpPutFile _
Lib "wininet.dll" Alias "FtpPutFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszLocalFile As String, _
ByVal lpszRemoteFile As String, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean
Public Declare Function InternetCloseHandle _
Lib "wininet.dll" (ByVal hInet As Long) As Integer
Тут только две функции, GET и PUT. Остальны на: http://www.codenet.ru/progr/vbasic/FTP.php
If FtpGetFile(hSession, "123.exe", "c:\123.exe", False, 0, 1, 0) = False Then
Label1.Caption = "The call to FtpGetFile failed."
Call InternetCloseHandle(hSession)
Call InternetCloseHandle(hINetSession)
End If
End Sub
Private Sub Command2_Click()
hINetSession = InternetOpen("FTP", 1, vbNullString, vbNullString, 0)
If FtpPutFile(hSession, "c:\log.txt", "log.txt", 1, 0) = False Then
Label1.Caption = "The call to FtpPutFile failed."
Call InternetCloseHandle(hSession)
Call InternetCloseHandle(hINetSession)
End If
End Sub
Как выяснилось всё до тупости просто. Спасибо всем.
Может кто нибудь ещё знает как загрузить файл через HTTP? Буду признателен))