-e: specify filename to exec after connect#
Warning
pync can execute a process and connect the process’ stdin/stdout/stderr to the network socket.
Any data that comes in from the network will go to the process’ stdin, and any data that comes out from the process’ stdout/stderr will be sent out to the network.
There are two options that can provide this functionality, the -e option and the -c option.
Running a Command With -e#
The -e option takes the full pathname of a command to execute, along with any arguments.
Create a local server that sends “Hello” to the first client that connects:
pync -vle "/bin/echo Hello" localhost 8000
py -m pync -vle "echo Hello" localhost 8000
import platform
import pync
cmd = '/bin/echo Hello'
if platform.system() == 'Windows':
cmd = 'echo Hello'
pync.run('-vle "{}" localhost 8000')
Connect to the Hello server to see the message:
pync -v localhost 8000
py -m pync -v localhost 8000
import pync
pync.run('-v localhost 8000')
Running a Command With -c#
The -c option is the same as the -e option but allows extra shell features such as pipelines and evironment variable expansion.
Create a local server that sends the current working directory to the first client that connects:
pync -vle "/bin/echo `pwd`" localhost 8000
py -m pync -vle "echo %cd%" localhost 8000
import platform
import pync
cmd = '/bin/echo `pwd`'
if platform.system() == 'Windows':
cmd = 'echo %cd%'
pync.run('-vle "{}" localhost 8000')
Connect to the server to receive the server’s current working directory:
pync -v localhost 8000
py -m pync -v localhost 8000
import pync
pync.run('-v localhost 8000')
- SEE ALSO: