Stream EXchange (SEX)

You can imagine SEX as network wide UNIX pipes with a relay between or as network based FIFOs.
This can be useful for piping data from A to B where A and B cannot establish a direct connection, but both can connect to the SEX-server by HTTP.
SEX is a synchronous service in conjuction to F*EX which is asynchronous.

For seamless integration into the UNIX tool chain, there are the shell-tools sexsend and sexget.

Using web browsers for sexing will not work, because they cannot handle streams in a pipe. So far, there are only the UNIX clients. Feel free to implement other clients for other operating systems :-)

Authentication is the same as with F*EX.

Example:

  root@lanldap:/var/log: tail -f syslog | sexsend framstag@rus.uni-stuttgart.de

  framstag@blubb:/tmp: sexget | grep ldap

If you need encryption, then use the standard UNIX toolbox and add an appropriate program to the pipe, for example: openssl bf

public SEX

The recipient of regular SEX must be a registered F*EX user.
But you can also offer streams to non-registered user.
This is called "public SEX", example:

  framstag@flupp: cal | sexsend public
  http://fex.rus.uni-stuttgart.de/sex?user=framstag@rus.uni-stuttgart.de&ID=public
  http://fex.rus.uni-stuttgart.de/sex?dXNlcj1mcmFtc3RhZ0BydXMudW5pLXN0dXR0Z2FydC5kZSZJRD1wdWJsaWM=

sexsend then displays two URLs onder which one can get the stream.

SEX - all inclusive

To transfer files by streaming you can use xx-rated SEX:

  root@vms2:/data/VM# sexxx flupp
  streaming:
  flupp/
  flupp/vmware.log
  flupp/flupp.nvram
  flupp/flupp.vmxf
  flupp/flupp.vmx
  flupp/flupp.vmdk
  4976 MB 11640 kB/s