#lang racket (require racket/tcp) (define (tcp-sendreceive msg) (define-values (cin cout) (tcp-connect "localhost" 12345)) (displayln msg cout) (flush-output cout) (read-line cin)) (begin (tcp-sendreceive "register X") (tcp-sendreceive "register O") (tcp-sendreceive "update X") (tcp-sendreceive "update O") (tcp-sendreceive "set X 4") (tcp-sendreceive "set O 0") (tcp-sendreceive "set X 1") (tcp-sendreceive "set O 7") (tcp-sendreceive "set X 5") (tcp-sendreceive "set O 3") (tcp-sendreceive "set X 6") (tcp-sendreceive "set O 2") (tcp-sendreceive "set X 8") (tcp-sendreceive "update X") (tcp-sendreceive "update O") (tcp-sendreceive "restart O") (tcp-sendreceive "update X") (tcp-sendreceive "update O"))