(use unix-sockets) (use posix) (define-values (ip op ic oc) (unix-pair)) (process-fork (lambda () (let ((p (current-process-id)) (r (read-line ic))) (print "pid " p " read: " r) (let ((w (number->string (+ 1 (string->number r))))) (print "pid " p " write: " w) (write-line w oc) (flush-output oc) (print (read-line ic)))))) (let ((p (current-process-id)) (w (number->string (random 33)))) (print "pid " p " write: " w) (write-line w op) (let ((r (read-line ip))) (print "pid " p " read: " r) (write-line "bye" op) (flush-output op))) #| Example output: jim@aeryn ~/scheme/chicken-eggs4/unix-sockets/trunk$ csi -script socketpair-test.scm pid 4411 write: 20 pid 4412 read: 20 pid 4412 write: 21 pid 4411 read: 21 bye |#