#!/usr/bin/newlisp
# client-server.lsp - benchmark
# requires newLISP v 9.0.0 or later
(set 'DATA "Hello there sailor\n");
(set 'bufferSize (length DATA))
(define (server port)
(set 'listen (net-listen port))
(set 'connection (net-accept listen))
(set 'N 0)
(while (net-receive connection 'buff bufferSize)
(inc 'N (length buff))
(net-send connection buff))
(net-close connection)
(net-close listen)
(println "server processed " N " bytes"))
(define (client port n)
(set 'connection (net-connect "127.0.0.1" port))
(dotimes (x n)
(net-send connection DATA)
(net-receive connection 'buff bufferSize)
(if (!= buff DATA) (println "Received different message: " buff)))
(net-close connection))
(set 'n (integer (main-args 2)))
(fork (server 100001))
(sleep 100)
(client 100001 n)
(exit)
;; eof
syntax highlighting with newLISP and syntax.cgi