Traffic von Sockets wird als ausgehende Bandbreite abgerechnet. App Engine unterstützt ausgehende Sockets mit Methoden aus der Standard-PHP-Bibliothek, z. B.
fsockopen
.
Bei unterstützten Optionen geben Aufrufe von socket_get_option
einen Simulationswert zurück und Aufrufe von socket_set_option
werden ohne Rückmeldung ignoriert. Bei nicht unterstützten Optionen werden weiterhin Fehlermeldungen zurückgegeben.
Die folgenden Optionen werden unterstützt:
SO_KEEPALIVE
SO_DEBUG
TCP_NODELAY
SO_LINGER
SO_OOBINLINE
SO_SNDBUF
SO_RCVBUF
SO_REUSEADDR
Limits und Einschränkungen
Die Socket-Unterstützung in App Engine unterliegt den folgenden Einschränkungen:
- Sie können keinen Socket erstellen, der auf eingehende Verbindungen wartet; nur ausgehende Sockets können erstellt werden.
- FTP wird nicht unterstützt.
- Sie können nur TCP oder UDP verwenden. Beliebige Protokolle sind nicht erlaubt.
- Sie können Sockets nicht an bestimmte IP-Adressen oder Ports binden.
- Port 25 (SMTP) ist blockiert; Sie können weiterhin authentifiziertes SMTP auf dem Übermittlungsport 587 verwenden.
Private, Broadcast-, Multicast- und Google-IP-Bereiche (mit Ausnahme der unten aufgelisteten) sind blockiert:
- Google Public DNS:
8.8.8.8
,8.8.4.4
,2001:4860:4860::8888
,2001:4860:4860::8844
Port 53 - Gmail SMTPS:
smtp.gmail.com
Port 465 und 587 - Gmail POP3S:
pop.gmail.com
Port 995 - Gmail IMAPS:
imap.gmail.com
Port 993
- Google Public DNS:
Socket-Deskriptoren sind der App Engine-Anwendung zugeordnet, mit der sie erstellt wurden, und nicht übertragbar. Sie können also nicht von anderen Anwendungen genutzt werden.
Sockets können nach zehn Minuten Inaktivität zurückgewonnen werden. Jeder Socket-Vorgang hält den Socket für weitere zehn Minuten aktiv.
Sockets mit dem Entwicklungsserver verwenden
Sie können Code mithilfe von Sockets auf dem Entwicklungsserver ausführen und testen, ohne spezielle Befehlszeilenparameter zu verwenden.