Error getting tags :
error 404Error getting tags :
error 404 open socket | revDocs | RunRev
Welcome Guest (Log in)
Product Edition
open socket
Expander triangle

open [datagram] socket [to] host[:port[|ID]] [with message callbackMessage]

open secure socket [to] host[:port[|ID]] [with message callbackMessage] [with|without verification] [using certificate certificate and key key]

Desktop, Web and Server
Platform Support
MacOS,Mac OS X,Windows,Linux
Establishes a TCP communications socket between your system and another system.

open socket to ""
open socket to "|sendFiles"
open socket to (field "Outgoing") with message "mailConnectionUp"
open secure socket to "" with message "wasConnected" with verification

Additional Comments
Expander triangle

Use the open socket command to open a connection to another system on the Internet (or another IP network) to get and send data.


The host is the IP address or domain name of the host you want to connect to.

The port is the port number you want to connect to. If you don't specify a port, port 80 is used. (On most systems, port 80 is used for HTTP connections.)

The ID is an optional connection name for the socket, and can be any string. Specify an ID if you want to create more than one socket to the same host and port number, so that you can distinguish between them.

The callbackMessage is the name of a message to be sent when the connection is made.


When a connection is made, the open socket command creates a new socket that can be used to communicate with the other system. The handler continues executing while the connection is being established. If you use the write to socket command while the connection is opening, the data is buffered and is sent to the host as soon as the connection is made.

Use the open datagram socket form if you want to send a connectionless UDP datagram instead of opening a socket.

If you specify a callbackMessage, the message is sent to the object whose script contains the open socket command, as soon as the connection is made. The first parameter pf this message is the host and port number of the socket. Use a callbackMessage to trigger actions (such as reading from the socket) that must wait until the connection has been established. (To pause the handler that contains the open socket command until the callbackMessage is received, use the wait for messages form of the wait command.)

UDP/datagram sockets are not supported by SSL. When connecting to a remote peer, the client verifies the servers certificate during the handshake process and verifies it against a list of certificates. You can specify a list of root CA to verify against using the sslcertificates property (see sslurlloader sample). The sslcertficates property takes a return delimited list of files or folders. In addition you can place system wide certfificates in System/Library/OpenSSL/certs.

The most common CAs such as verisign can be found in the file root.pem. If 'without verification' is specified then server credentials are not authenticated, and any connection is accepted. Some servers require that the client submit a certificate as well, this will be supported in the next alpha.

If the socket fails to open due to an error, a socketError message is sent to the object that attempted to open the socket. (If the error is due to a problem finding the specified host, the error message is returned in the result, and no socketError message is sent.)

Note: When the acceptcommand creates a socket, it assigns a number as the connection name. If you are using both the open socketcommand and the acceptcommand to connect to the same port on the same host, make sure to use a non-numeric connection name that won't conflict with the numbers assigned by the acceptcommand. This ensures that you can always refer to two different sockets by distinct socket identifiers.

Important!sockets are always opened in binary mode. This means that Revolution does not automatically convert between the other system's end-of-line convention and the line feed character (ASCII 10) that Revolution uses internally to mark the end of a line. If you are reading or writing data one line at a time, be sure you know whether the other system uses line feed, return (ASCII 13), or both to mark the end of each line; if necessary, you will need to convert end-of-line markers yourself, after receiving or before sending the data. (The usual end-of-line marker on Mac OS and OS X systems is a return character; on Unix, a line feed; on Windows, a CRLF.)

For technical information about the numbers used to designate standard ports, see the list of port numbers at <>, in particular the section titled "Well Known Port Numbers".

Important! The open secure socketcommand is part of the SSL & Encryption library. To ensure that the command works in a standalone application, you must include this custom library when you create your standalone. In the Inclusions section on the General screen of the Standalone Application Settings window, make sure "SSL & Encryption" is selected in the list of script libraries.

User Comments
Expander triangle