summaryrefslogtreecommitdiffstats
path: root/Demo/pysvr/pysvr.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/pysvr/pysvr.py')
-rwxr-xr-xDemo/pysvr/pysvr.py130
1 files changed, 65 insertions, 65 deletions
diff --git a/Demo/pysvr/pysvr.py b/Demo/pysvr/pysvr.py
index a62fc5c..dd0abdc 100755
--- a/Demo/pysvr/pysvr.py
+++ b/Demo/pysvr/pysvr.py
@@ -14,30 +14,30 @@ can log in on your machine. Use with caution!
import sys, os, string, getopt, thread, socket, traceback
-PORT = 4000 # Default port
+PORT = 4000 # Default port
def main():
try:
- opts, args = getopt.getopt(sys.argv[1:], "")
- if len(args) > 1:
- raise getopt.error, "Too many arguments."
+ opts, args = getopt.getopt(sys.argv[1:], "")
+ if len(args) > 1:
+ raise getopt.error, "Too many arguments."
except getopt.error, msg:
- usage(msg)
+ usage(msg)
for o, a in opts:
- pass
+ pass
if args:
- try:
- port = string.atoi(args[0])
- except ValueError, msg:
- usage(msg)
+ try:
+ port = string.atoi(args[0])
+ except ValueError, msg:
+ usage(msg)
else:
- port = PORT
+ port = PORT
main_thread(port)
def usage(msg=None):
sys.stdout = sys.stderr
if msg:
- print msg
+ print msg
print "\n", __doc__,
sys.exit(2)
@@ -47,18 +47,18 @@ def main_thread(port):
sock.listen(5)
print "Listening on port", port, "..."
while 1:
- (conn, addr) = sock.accept()
- if addr[0] != conn.getsockname()[0]:
- conn.close()
- print "Refusing connection from non-local host", addr[0], "."
- continue
- thread.start_new_thread(service_thread, (conn, addr))
- del conn, addr
+ (conn, addr) = sock.accept()
+ if addr[0] != conn.getsockname()[0]:
+ conn.close()
+ print "Refusing connection from non-local host", addr[0], "."
+ continue
+ thread.start_new_thread(service_thread, (conn, addr))
+ del conn, addr
def service_thread(conn, addr):
(caddr, cport) = addr
print "Thread %s has connection from %s.\n" % (str(thread.get_ident()),
- caddr),
+ caddr),
stdin = conn.makefile("r")
stdout = conn.makefile("w", 0)
run_interpreter(stdin, stdout)
@@ -67,57 +67,57 @@ def service_thread(conn, addr):
def run_interpreter(stdin, stdout):
globals = {}
try:
- str(sys.ps1)
+ str(sys.ps1)
except:
- sys.ps1 = ">>> "
+ sys.ps1 = ">>> "
source = ""
while 1:
- stdout.write(sys.ps1)
- line = stdin.readline()
- if line[:2] == '\377\354':
- line = ""
- if not line and not source:
- break
- if line[-2:] == '\r\n':
- line = line[:-2] + '\n'
- source = source + line
- try:
- code = compile_command(source)
- except SyntaxError, err:
- source = ""
- traceback.print_exception(SyntaxError, err, None, file=stdout)
- continue
- if not code:
- continue
- source = ""
- try:
- run_command(code, stdin, stdout, globals)
- except SystemExit, how:
- if how:
- try:
- how = str(how)
- except:
- how = ""
- stdout.write("Exit %s\n" % how)
- break
+ stdout.write(sys.ps1)
+ line = stdin.readline()
+ if line[:2] == '\377\354':
+ line = ""
+ if not line and not source:
+ break
+ if line[-2:] == '\r\n':
+ line = line[:-2] + '\n'
+ source = source + line
+ try:
+ code = compile_command(source)
+ except SyntaxError, err:
+ source = ""
+ traceback.print_exception(SyntaxError, err, None, file=stdout)
+ continue
+ if not code:
+ continue
+ source = ""
+ try:
+ run_command(code, stdin, stdout, globals)
+ except SystemExit, how:
+ if how:
+ try:
+ how = str(how)
+ except:
+ how = ""
+ stdout.write("Exit %s\n" % how)
+ break
stdout.write("\nGoodbye.\n")
def run_command(code, stdin, stdout, globals):
- save = sys.stdin, sys.stdout, sys.stderr
- try:
- sys.stdout = sys.stderr = stdout
- sys.stdin = stdin
- try:
- exec code in globals
- except SystemExit, how:
- raise SystemExit, how, sys.exc_info()[2]
- except:
- type, value, tb = sys.exc_info()
- if tb: tb = tb.tb_next
- traceback.print_exception(type, value, tb)
- del tb
- finally:
- sys.stdin, sys.stdout, sys.stderr = save
+ save = sys.stdin, sys.stdout, sys.stderr
+ try:
+ sys.stdout = sys.stderr = stdout
+ sys.stdin = stdin
+ try:
+ exec code in globals
+ except SystemExit, how:
+ raise SystemExit, how, sys.exc_info()[2]
+ except:
+ type, value, tb = sys.exc_info()
+ if tb: tb = tb.tb_next
+ traceback.print_exception(type, value, tb)
+ del tb
+ finally:
+ sys.stdin, sys.stdout, sys.stderr = save
from code import compile_command