Блог по программированию в среде Delphi

Поиск по блогу

Есть идея по созданию интересной программы?

Опиши тут и я по возможности постараюсь это реализовать специально для тебя! Без $ ))

суббота, 26 июня 2010 г.

InternetConnect

Функция открывает сессию с указанным сервером, используя протокол FTP, HTTP, Gopher.

Синтаксис Delphi  
function InternetConnect (hInet: HINTERNET;
                                      lpszServerName: PChar;
                                      nServerPort: INTERNET_PORT;
                                      lpszUsername: PChar;
                                      lpszPassword: PChar;
                                      dwService: DWORD;
                                      dwFlags: DWORD;
                                      dwContext: DWORD): HINTERNET; stdcall;
Параметры:
  • HInet – указатель, полученный после вызова InternetOpen.
  • LpszServerName – имя сервера, с которым нужно установить соединение. Может быть как именем хоста – domain.com.ua, так и IP- адресом – 134.123.44.67.
  • NServerPort – указывает на TCP/IP порт, с которым нужно соединиться. Для задания стандартных портов служат константы: NTERNET_DEFAULT_FTP_PORT (port 21), INTERNET_DEFAULT_GOPHER_PORT (port 70), INTERNET_DEFAULT_HTTP_PORT (port 80), INTERNET_DEFAULT_HTTPS_ PORT (port 443), INTERNET_DEFAULT_SOCKS_PORT (port 1080), INTERNET_INVALID_PORT_NUMBER – порт по умолчанию для сервиса, описанного в dwService. Стандартные порты для различных сервисов находятся в файле SERVICES в директории Windows.
  • LpszUsername – имя пользователя, желающего установить соединение. Если установлено в nil , то будет использовано имя по умолчанию, но для HTTP это вызовет исключение.
  • LpszPassword – пароль пользователя для доступа к серверу. Если оба значения установить в nil, то будут использованы параметры по умолчанию.
  • DwService – задает сервис, который требуется от сервера. Может принимать значения INTERNET_SERVICE_FTP, INTERNET_SERVICE_GOPHER, INTERNET_SERVICE_HTTP.
  • DwFlags - Задает специфические параметры для соединения. Например, если DwService установлен в INTERNET_SERVICE_FTP, то можно установить в INTERNET_FLAG_PASSIVE для использования пассивного режима.
Функция возвращает указатель на установленную сессию или nil в случае невозможности ее установки.
Итак, мы имеем связь с сервером, нужный нам порт открыт. Теперь следует открыть соответствующий файл. Для этого определена функция InternetOpenUrl. Она принимает полный URL файла и возвращает указатель на него. Кстати, перед ее использованием не нужно вызывать InternetConnect.

6 комментариев:

  1. Спасибо огромнейшее. Хоть я программирую на VB.NET, эта инфа мне очень пригодилась.. по VB замучился искать.. ^.^

    ОтветитьУдалить
  2. > Итак, мы имеем связь с сервером, нужный нам порт открыт. Теперь следует открыть соответствующий файл. Для этого определена функция InternetOpenUrl. Она принимает полный URL файла и возвращает указатель на него. Кстати, перед ее использованием не нужно вызывать InternetConnect.

    )))
    а зачем тогда про нее говорить?

    ОтветитьУдалить
  3. ))) чтобы путаницы не было)))

    ОтветитьУдалить
  4. А вот если протокол FTP, а порт 21 закрыт (например, в роутере в общественном месте). Но при этом ручками файлы по FTP передаются. Как узнать порт, через который можно этой функцией файлы передать? Или может нужно установить доп. параметры какие-то? Спасибо за ответ.

    ОтветитьУдалить
    Ответы
    1. Добрый день!
      Номер порта надо указать в NServerPort

      Удалить