Practice: run clisp code via net
来源:互联网 发布:模拟战争软件 编辑:程序博客网 时间:2024/04/30 03:37
Clisp Codes
;;; read-eval-print-server.lisp;;;;;; read-eval-print loop server;;;;;; the oringial code was on below page of clisp:;;; http://clisp.org/impnotes.html#socket-ex-server;;;;;; limit the socket server to local connections("127.0.0.1") for security,;;; but it also work for internet ip if you do not limit the server.(let ((server (socket:socket-server 23 :INTERFACE "127.0.0.1"))) (format t "~&waiting for a connection on ~S:~D~%" (socket:socket-server-host server) (socket:socket-server-port server)) (unwind-protect (loop (with-open-stream (socket (socket:socket-accept server))(multiple-value-bind (local-host local-port) (socket:socket-stream-local socket) (multiple-value-bind (remote-host remote-port) (socket:socket-stream-peer socket) (format t "~&connection: ~S:~D -- ~S:~D ~%" remote-host remote-port local-host local-port)))(loop (when (eq :eof (socket:socket-status (cons socket :input))) (return)) (print (eval (read socket)) socket) (loop :for c = (read-char-no-hang socket nil nil) :while c) (format socket "ok~%") (terpri socket)))) (socket:socket-server-close server)))
;;; read-eval-print-client.lisp;;;;;; read-eval-print client(defun run-lisp-via-net (host lisp-codes &optional (port 23)) (with-open-stream (socket (socket:socket-connect port host :external-format :dos)) (format socket "~A" lisp-codes) (socket:socket-stream-shutdown socket :output) (loop :for line = (read-line socket nil nil) :while line :collect line :do (format t "~A ~%" line))));; Test Cases(run-lisp-via-net "127.0.0.1" "(ext:dir)")(run-lisp-via-net "127.0.0.1" "(load \"http-client.lisp\")" 23)
Testing and results
start the server:
test the client:
Log outputted on server:
Q: what does this demo mean?
A: you can run any code via net as you want, no matter these codes is from client or on server. Clisp can make all data as code ...
Enjoy~ Mars
0 0
- Practice: run clisp code via net
- QTP Tips 3 - Run QTP via VBScript
- run scrum code
- run rcnn code
- Notes:De-anonymizing Programmers via Code Stylometry
- Scheduling Code to Run Intermittently (Code Overview)
- Calculate the code run time
- linux code run time calculate
- Run code as python interpreter
- Woring Practice -每次修改进行code review
- Best Practice Techniques for Code Reviews
- Run Commands Remotely via SSH with No Password
- Code Craft: The Practice of Writing Excellent Code [ILLUSTRATED]
- clisp笔记
- CLISP special
- VIA
- 《CLR via C#》读书笔记-.NET多线程(一)
- 《CLR via C#》读书笔记-.NET多线程(二)
- 用python解决汉诺塔问题
- Java多线程面试常见核心问题总结
- 关于typedef的用法总结
- Java线程池
- MyEclipse2015破解(土)法
- Practice: run clisp code via net
- 仿微信底端菜单栏界面
- 文章标题
- 杭电oj编码2024
- 计蒜客 寻找插入位置
- jar下载
- 解决listview滑动变黑。。
- 最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)
- jq页面加载方式