unix-socket-tcp-unit.rkt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #lang racket/base
  2. (require net/tcp-sig
  3. racket/unit
  4. racket/unix-socket)
  5. (provide
  6. make-unix-socket-tcp@)
  7. (define (make-unix-socket-tcp@ port path)
  8. (unit
  9. (import)
  10. (export tcp^)
  11. (define (tcp-abandon-port p)
  12. (void))
  13. (define (tcp-accept l)
  14. (unix-socket-accept l))
  15. (define (tcp-accept/enable-break l)
  16. (parameterize-break #t
  17. (unix-socket-accept l)))
  18. (define (tcp-accept-ready? _l)
  19. #t)
  20. (define (tcp-addresses _p [port-numbers? #f])
  21. (if port-numbers?
  22. (values "127.0.0.1" port "127.0.0.1" 0)
  23. (values "127.0.0.1" "127.0.0.1")))
  24. (define (tcp-close l)
  25. (unix-socket-close-listener l))
  26. (define (tcp-connect _hostname
  27. _port-no
  28. [_local-hostname #f]
  29. [_local-port-no #f])
  30. (error 'tcp-connect "not supported"))
  31. (define (tcp-connect/enable-break _hostname
  32. _port-no
  33. [_local-hostname #f]
  34. [_local-port-no #f])
  35. (error 'tcp-connect/enable-break "not supported"))
  36. (define (tcp-listen _port-no
  37. [backlog 4]
  38. [_reuse? #f]
  39. [_hostname #f])
  40. (unix-socket-listen path backlog))
  41. (define (tcp-listener? l)
  42. (unix-socket-listener? l))))