Traffic from sockets is billed as outgoing bandwidth. App Engine supports outbound sockets using methods from the standard PHP library such as
fsockopen.
For supported options, calls to
socket_get_option
will return a mock value and calls to
socket_set_option
will be silently ignored. Errors will continue to be raised for unsupported options.
The supported options are:
SO_KEEPALIVESO_DEBUGTCP_NODELAYSO_LINGERSO_OOBINLINESO_SNDBUFSO_RCVBUFSO_REUSEADDR
Limitations and restrictions
Socket support in App Engine has the following limitations:
- You cannot create a listen socket; you can only create outbound sockets.
 - FTP is not supported.
 - You can only use TCP or UDP; arbitrary protocols are not allowed.
 - You cannot bind to specific IP addresses or ports.
 - Port 25 (SMTP) is blocked; you can still use authenticated SMTP on the submission port 587.
 Private, broadcast, multicast, and Google IP ranges are blocked, except those listed below:
- Google Public DNS: 
8.8.8.8,8.8.4.4,2001:4860:4860::8888,2001:4860:4860::8844port 53 - Gmail SMTPS: 
smtp.gmail.comport 465 and 587 - Gmail POP3S: 
pop.gmail.comport 995 - Gmail IMAPS: 
imap.gmail.comport 993 
- Google Public DNS: 
 Socket descriptors are associated with the App Engine app that created them and are non-transferable (cannot be used by other apps).
Sockets may be reclaimed after 10 minutes of inactivity; any socket operation keeps the socket alive for a further 10 minutes.
Using sockets with the development server
You can run and test code using sockets on the development server, without using any special command line parameters.