1 URLs and HTTP
2 URI Codec: Encoding and Decoding URIs
3 FTP: Client Downloading
4 Send URL: Opening a Web Browser
5 SMTP: Sending E-Mail
6 sendmail: Sending E-Mail
7 Headers: Parsing and Constructing
8 IMAP: Reading Mail
9 POP3: Reading Mail
10 MIME: Decoding Internet Data
11 Base 64: Encoding and Decoding
12 Quoted-Printable: Encoding and Decoding
13 DNS: Domain Name Service Queries
14 NNTP: Newsgroup Protocol
15 TCP: Unit and Signature
16 TCP Redirect: tcp^ via Channels
17 SSL Unit: tcp^ via SSL
18 CGI Scripts
19 Cookie: HTTP Client Storage
Bibliography
Index
On this page:
15.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
15.2 TCP Unit
tcp@
Version: 4.0.2

 

15 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@.

15.1 TCP Signature

 (require net/tcp-sig)

tcp^ : signature

(tcp-listen

 

port-no

 

 

 

 

 

 [

max-allow-wait

 

 

 

 

 

 

reuse?

 

 

 

 

 

 

hostname])

 

 

tcp-listener?

  

port-no

 

:

 

(and/c nonnegative-exact-integer?

       (integer-in 1 65535))

  max-allow-wait : nonnegative-exact-integer? = 4

  reuse? : any/c = #f

  hostname : (or/c string? false/c) = #f

Like tcp-listen from scheme/tcp.

(tcp-connect

 

hostname

 

 

 

 

 

 

port-no

 

 

 

 

 

 [

local-hostname

 

 

 

 

 

 

local-port-no])

 

 

input-port?

 

output-port?

  hostname : string?

  

port-no

 

:

 

(and/c nonnegative-exact-integer?

      (integer-in 1 65535))

  local-hostname : (or/c string? false/c) = #f

  

local-port-no

 

:

 

(or/c (and/c nonnegative-exact-integer?

             (integer-in 1 65535))

      false/c)

 

=

 

#f

Like tcp-connect from scheme/tcp.

(tcp-connect/enable-break

 

hostname

 

 

 

port-no

 

 

 [

local-hostname]

 

 

 

local-port-no)

 

 

 

input-port?

 

output-port?

  hostname : string?

  

port-no

 

:

 

(and/c nonnegative-exact-integer?

      (integer-in 1 65535))

  local-hostname : (or/c string? false/c) = #f

  

local-port-no

 

:

 

(or/c (and/c nonnegative-exact-integer?

             (integer-in 1 65535))

      false/c)

Like tcp-connect/enable-break from scheme/tcp.

(tcp-accept listener)

 

 

input-port?

 

output-port?

  listener : tcp-listener?

Like tcp-accept from scheme/tcp.

(tcp-accept/enable-break listener)

 

 

input-port?

 

output-port?

  listener : tcp-listener?

Like tcp-accept/enable-break from scheme/tcp.

(tcp-accept-ready? listener)  boolean?

  listener : tcp-listener?

Like tcp-accept-ready? from scheme/tcp.

(tcp-close listener)  void?

  listener : tcp-listener?

Like tcp-close from scheme/tcp.

(tcp-listener? v)  boolean?

  v : any/c

Like tcp-listener? from scheme/tcp.

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

  tcp-port : port?

Like tcp-abandon-port from scheme/tcp.

(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

Like tcp-addresses from scheme/tcp.

15.2 TCP Unit

 (require net/tcp-unit)

tcp@ : unit?

Imports nothing and exports tcp^, implemented using scheme/tcp.