InternetConnectA-Funktion (wininet.h)

Öffnet eine FTP- oder HTTP-Sitzung für eine bestimmte Website.

Syntax

HINTERNET InternetConnectA(
  [in] HINTERNET     hInternet,
  [in] LPCSTR        lpszServerName,
  [in] INTERNET_PORT nServerPort,
  [in] LPCSTR        lpszUserName,
  [in] LPCSTR        lpszPassword,
  [in] DWORD         dwService,
  [in] DWORD         dwFlags,
  [in] DWORD_PTR     dwContext
);

Parameter

[in] hInternet

Handle, das von einem vorherigen Aufruf von InternetOpen zurückgegeben wurde.

[in] lpszServerName

Zeiger auf eine null-beendete Zeichenfolge, die den Hostnamen eines Internetservers angibt. Alternativ kann die Zeichenfolge die IP-Nummer der Website im ASCII-Dezimalformat enthalten (z. B. 11.0.1.45).

[in] nServerPort

TCP/IP-Port (Transmission Control Protocol/Internet Protocol) auf dem Server. Diese Flags legen nur den port fest, der verwendet wird. Der Dienst wird durch den Wert von dwService festgelegt. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
INTERNET_DEFAULT_FTP_PORT
Verwendet den Standardport für FTP-Server (Port 21).
INTERNET_DEFAULT_GOPHER_PORT
Verwendet den Standardport für Gopher-Server (Port 70).
Hinweis Nur Windows XP und Windows Server 2003 R2 und früher.
 
INTERNET_DEFAULT_HTTP_PORT
Verwendet den Standardport für HTTP-Server (Port 80).
INTERNET_DEFAULT_HTTPS_PORT
Verwendet den Standardport für HTTPS-Server (Secure Hypertext Transfer Protocol) (Port 443).
INTERNET_DEFAULT_SOCKS_PORT
Verwendet den Standardport für SOCKS-Firewallserver (Port 1080).
INTERNET_INVALID_PORT_NUMBER
Verwendet den Standardport für den von dwService angegebenen Dienst.

[in] lpszUserName

Zeiger auf eine NULL-Zeichenfolge, die den Namen des Benutzers angibt, der sich anmelden soll. Wenn dieser Parameter NULL ist, verwendet die Funktion einen entsprechenden Standardwert. Für das FTP-Protokoll ist der Standardwert "anonym".

[in] lpszPassword

Zeiger auf eine NULL-Zeichenfolge, die das Kennwort enthält, das für die Anmeldung verwendet werden soll. Wenn sowohl lpszPassword als auch lpszUsernameNULL sind, verwendet die Funktion das standardmäßige "anonyme" Kennwort. Im Fall von FTP ist das Standardkennwort der E-Mail-Name des Benutzers. Wenn lpszPasswordNULL ist, aber lpszUsername nicht NULL ist, verwendet die Funktion ein leeres Kennwort.

[in] dwService

Typ des Diensts, auf den zugegriffen werden soll. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
INTERNET_SERVICE_FTP
FTP-Dienst.
INTERNET_SERVICE_GOPHER
Gopher-Dienst.
Hinweis Nur Windows XP und Windows Server 2003 R2 und früher.
 
INTERNET_SERVICE_HTTP
HTTP-Dienst.

[in] dwFlags

Spezifische Optionen für den verwendeten Dienst. Wenn
dwService ist INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE bewirkt, dass die Anwendung passive FTP-Semantik verwendet.

[in] dwContext

Zeiger auf eine Variable, die einen anwendungsdefinierten Wert enthält, der verwendet wird, um den Anwendungskontext für das zurückgegebene Handle in Rückrufen zu identifizieren.

Rückgabewert

Gibt ein gültiges Handle für die Sitzung zurück, wenn die Verbindung erfolgreich ist, oder andernfalls NULL . Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen. Eine Anwendung kann auch InternetGetLastResponseInfo verwenden, um zu bestimmen, warum der Zugriff auf den Dienst verweigert wurde.

Hinweise

In der folgenden Tabelle wird das Verhalten für die vier möglichen Einstellungen lpszUsername und lpszPassword beschrieben.

lpszUsername lpszPassword Benutzername, der an den FTP-Server gesendet wird An FTP-Server gesendetes Kennwort
NULL NULL "anonym" E-Mail-Name des Benutzers
Nicht-NULL-Zeichenfolge NULL lpszUsername ""
NULL Nicht-NULL-Zeichenfolge ERROR ERROR
Nicht-NULL-Zeichenfolge Nicht-NULL-Zeichenfolge lpszUsername lpszPassword
 

Bei FTP-Websites stellt InternetConnect tatsächlich eine Verbindung mit dem Server her. Bei anderen wird die tatsächliche Verbindung erst hergestellt, wenn die Anwendung eine bestimmte Transaktion anfordert.

Um maximale Effizienz zu erzielen, sollten Anwendungen, die die HTTP-Protokolle verwenden, versuchen, Aufrufe von InternetConnect zu minimieren und vermeiden, dass diese Funktion für jede vom Benutzer angeforderte Transaktion aufgerufen wird. Eine Möglichkeit, dies zu erreichen, besteht darin, einen kleinen Cache von Handles beizubehalten, die von InternetConnect zurückgegeben werden. wenn der Benutzer eine Anforderung an einen Server sendet, auf den zuvor zugegriffen wurde, ist dieses Sitzungshandle weiterhin verfügbar.

Nachdem die aufrufende Anwendung das von InternetConnect zurückgegebene HINTERNET-Handle verwendet hat, muss es mit der InternetCloseHandle-Funktion geschlossen werden.

Hinweis Wenn eine Anforderung im asynchronen Modus gesendet wird (der dwFlags-Parameter von InternetOpen gibt INTERNET_FLAG_ASYNC an), und der dwContext-Parameter null (INTERNET_NO_CALLBACK), wird der Rückruffunktionssatz mit InternetSetStatusCallback für das Verbindungshandle nicht aufgerufen, der Aufruf wird jedoch weiterhin im asynchronen Modus ausgeführt.

Beispiele für die InternetConnect-Nutzung finden Sie in den folgenden Themen.

Wie alle anderen Aspekte der WinINet-API kann diese Funktion nicht sicher innerhalb von DllMain oder den Konstruktoren und Destruktoren globaler Objekte aufgerufen werden.

Hinweis WinINet unterstützt keine Serverimplementierungen. Darüber hinaus sollte es nicht von einem Dienst aus verwendet werden. Verwenden Sie für Serverimplementierungen oder Dienste Microsoft Windows HTTP Services (WinHTTP).
 

Hinweis

Der wininet.h-Header definiert InternetConnect als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wininet.h
Bibliothek Wininet.lib
DLL Wininet.dll

Weitere Informationen

Aktivieren der Internetfunktionalität

WinINet-Funktionen