COMMENT(!MOD!zsh/net/socket
Manipulation of Unix domain sockets
!MOD!)
The tt(zsh/net/socket) module makes available one builtin command:

startitem()
findex(zsocket)
cindex(sockets)
cindex(sockets, Unix domain)
item(tt(zsocket) [ tt(-altv) ] [ tt(-d) var(fd) ] [ var(args) ])(
tt(zsocket) is implemented as a builtin to allow full use of shell
command line editing, file I/O, and job control mechanisms.
)
enditem()

subsect(Outbound Connections)
cindex(sockets, outbound Unix domain)

startitem()
item(tt(zsocket) [ tt(-v) ] [ tt(-d) var(fd) ] var(filename))(
Open a new Unix domain connection to var(filename).
The shell parameter tt(REPLY) will be set to the file descriptor
associated with that connection.  Currently, only stream connections
are supported.

If tt(-d) is specified, its argument
will be taken as the target file descriptor for the
connection.

In order to elicit more verbose output, use tt(-v).

File descriptors can be closed with normal shell syntax when no longer
needed, for example:

example(exec {REPLY}>&-)
)
enditem()

subsect(Inbound Connections)
cindex(sockets, inbound Unix domain)

startitem()
item(tt(zsocket) tt(-l) [ tt(-v) ] [ tt(-d) var(fd) ] var(filename))(
tt(zsocket -l) will open a socket listening on var(filename).
The shell parameter tt(REPLY) will be set to the file descriptor
associated with that listener.  The file descriptor remains open in subshells
and forked external executables.

If tt(-d) is specified, its argument
will be taken as the target file descriptor for
the connection.

In order to elicit more verbose output, use tt(-v).
)
item(tt(zsocket) tt(-a) [ tt(-tv) ] [ tt(-d) var(targetfd) ] var(listenfd))(
tt(zsocket -a) will accept an incoming connection
to the socket associated with var(listenfd).
The shell parameter tt(REPLY) will
be set to the file descriptor associated with
the inbound connection.  The file descriptor remains open in subshells
and forked external executables.

If tt(-d) is specified, its argument
will be taken as the target file descriptor for the
connection.

If tt(-t) is specified, tt(zsocket) will return
if no incoming connection is pending.  Otherwise
it will wait for one.

In order to elicit more verbose output, use tt(-v).
)
enditem()
