On this page:
16.1 TCP Signature
tcp^
tcp-listen
tcp-connect
tcp-connect/ enable-break
tcp-accept
tcp-accept/ enable-break
tcp-accept-ready?
tcp-close
tcp-listener?
tcp-abandon-port
tcp-addresses
16.2 TCP Unit
tcp@

16 TCP: Unit and Signature

The net/tcp-sig and net/tcp-unit libraries define a tcp^ signature and tcp@ implementation, where the implementation uses scheme/tcp.

Some units in the "net" collection import tcp^, so that they can be used with transports other than plain TCP. For example, url@ imports tcp^.

See also tcp-redirect and make-ssl-tcp@.

16.1 TCP Signature

 (require net/tcp-sig)

tcp^ : signature

(tcp-listen port-no    
  [max-allow-wait    
  reuse?    
  hostname])  tcp-listener?
  port-no : 
(and/c exact-nonnegative-integer?
       (integer-in 1 65535))
  max-allow-wait : exact-nonnegative-integer? = 4
  reuse? : any/c = #f
  hostname : (or/c string? false/c) = #f

(tcp-connect hostname    
  port-no    
  [local-hostname    
  local-port-no])  
input-port? output-port?
  hostname : string?
  port-no : 
(and/c exact-nonnegative-integer?
      (integer-in 1 65535))
  local-hostname : (or/c string? false/c) = #f
  local-port-no : 
(or/c (and/c exact-nonnegative-integer?
             (integer-in 1 65535))
      false/c)
 = #f

(tcp-connect/enable-break hostname 
  port-no 
  [local-hostname] 
  local-port-no) 
  
input-port? output-port?
  hostname : string?
  port-no : 
(and/c exact-nonnegative-integer?
      (integer-in 1 65535))
  local-hostname : (or/c string? false/c) = #f
  local-port-no : 
(or/c (and/c exact-nonnegative-integer?
             (integer-in 1 65535))
      false/c)

(tcp-accept listener)  
input-port? output-port?
  listener : tcp-listener?

(tcp-accept-ready? listener)  boolean?
  listener : tcp-listener?

(tcp-close listener)  void?
  listener : tcp-listener?

(tcp-listener? v)  boolean?
  v : any/c

(tcp-abandon-port tcp-port)  void?
  tcp-port : port?

(tcp-addresses tcp-port [port-numbers?])
  
(or/c (values string? string?)
      (values string? (integer-in 1 65535)
              string? (integer-in 1 65535)))
  tcp-port : port?
  port-numbers? : any/c = #f

16.2 TCP Unit

 (require net/tcp-unit)

tcp@ : unit?
Imports nothing and exports tcp^, implemented using scheme/tcp.