# 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 where 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