1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-19 21:44:11 +01:00

17201: add example use of ztcp to manual

This commit is contained in:
Peter Stephenson 2002-05-21 13:12:45 +00:00
parent afe1b00e16
commit 3bd0b68bfb
2 changed files with 34 additions and 0 deletions

@ -1,5 +1,7 @@
2002-05-21 Peter Stephenson <pws@csr.com>
* 17201: Doc/Zsh/mod_tcp.yo: add example use of ztcp.
* 17141 plus mods: Src/utils.c, Src/Zle/zle_main.c,
Src/Zle/zle_thingy.c, Doc/Zsh/zle.yo: `zle -F fd handler'
installs shell function handler for when data becomes available

@ -95,3 +95,35 @@ to force such a socket closed, use tt(-f).
In order to elicit more verbose output, use tt(-v).
)
enditem()
subsect(Example)
cindex(TCP, example)
Here is how to create a TCP connection between two instances of zsh. We
need to pick an unassigned port; here we use the randomly chosen 5123.
On tt(host1),
example(zmodload zsh/net/tcp
ztcp -l 5123
listenfd=$REPLY
ztcp -a $listenfd
fd=$REPLY)
The second from last command blocks until there is an incoming connection.
Now create a connection from tt(host2) (which may, of course, be the same
machine):
example(zmodload zsh/net/tcp
ztcp host1 5123
fd=$REPLY)
Now on each host, tt($fd) contains a file descriptor for talking to the
other. For example, on tt(host1):
example(print This is a message >&$fd)
and on tt(host2):
example(read -r line <&$fd; print -r - $line)
prints `tt(This is a message)'.
To tidy up, on tt(host1):
example(ztcp -c $listenfd
ztcp -c $fd)
and on tt(host2)
example(ztcp -c $fd)