; -*-scheme-*- (define (file-to-strings file-name) (if (not (file-exists? file-name)) '() (call-with-input-file file-name (lambda (port) (let loop ((l (read-line port)) (string-list '())) (cond ((eof-object? l) (reverse string-list)) (else (loop (read-line port) (cons l string-list))))))))) ;; (define pump-file (lambda (port file) (let ((ls (file-to-strings file))) (let loop ((ls ls)) (cond ((null? ls) '()) (else (display (car ls) port) (display (car ls)) (newline port) (newline) (loop (cdr ls)))))))) (define connection-proc (lambda (socket socket-address) (format #t "Got a connection!~%") ; (format #t "socket details: family ~s inport ~s outport ~s~%" ; (socket:family socket) ; (socket:inport socket) ; (socket:outport socket)) (read) (let loop ((count 0)) (let ((line (read-line (socket:inport socket)))) (format #t "~s connection-proc got: ~s~%" count line) (format (socket:outport socket) "(display (localtime (current-time)))") (format (socket:outport socket) "(newline)") (format (socket:outport socket) "(read-pdb \"monomer-ACT.pdb\")") (newline (socket:outport socket)) (format (socket:outport socket) "(let ((imol (read-pdb \"monomer-PIN.pdb\"))) (set-rotation-centre 5 5 5) (move-molecule-to-screen-centre imol) '())") (newline (socket:outport socket)) (format (socket:outport socket) "(display (localtime (current-time)))") (format (socket:outport socket) "(newline)") (newline (socket:outport socket)) ;; wait for char happens... (format (socket:outport socket) ";; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16") (newline (socket:outport socket)) (format (socket:outport socket) "(spin-zoom-trans 2 400 0.4 0.4 0 0 0)") (newline (socket:outport socket)) (format (socket:outport socket) "(rotate-y-scene 3000 0.05)") (newline (socket:outport socket)) (format #t "read-pdb stuff was send down the socket...\n") (read) (pump-file (socket:outport socket) "try2.scm") ;; shove down some text read from the console (let ((s (read))) (format #t "sending: ~s~%" s) (format (socket:outport socket) s) (newline (socket:outport socket))) (loop (+ count 1)))))) ;; (define (create-server-socket port) (bind-listen-accept-loop protocol-family/internet connection-proc port)) ;; (create-server-socket 12345)