racket/collects/net/scribblings/tcp.scrbl
Eli Barzilay ac26fe7554 A ton of @scheme*' -> @racket*' and related updates.
Also, updates some of the mzlib files to point at `racket/*' libraries
rather than to `scheme/*' ones.
2011-06-25 04:08:47 -04:00

101 lines
3.5 KiB
Racket

#lang scribble/doc
@(require "common.rkt"
(for-label net/tcp-sig net/tcp-unit net/url-unit net/tcp-redirect
net/ssl-tcp-unit racket/tcp))
@title[#:tag "tcp"]{TCP: Unit and Signature}
The @racketmodname[net/tcp-sig] and @racketmodname[net/tcp-unit]
libraries define a @racket[tcp^] signature and @racket[tcp@]
implementation, where the implementation uses
@racketmodname[racket/tcp].
Some units in the @filepath{net} collection import @racket[tcp^], so
that they can be used with transports other than plain TCP. For
example, @racket[url@] imports @racket[tcp^].
See also @racket[tcp-redirect] and @racket[make-ssl-tcp@].
@section{TCP Signature}
@defmodule[net/tcp-sig]
@defsignature[tcp^ ()]{
@defproc[(tcp-listen [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])
@#,sigelem[tcp^ tcp-listener?]]{
Like @racket[tcp-listen] from @racketmodname[racket/tcp].}
@defproc[(tcp-connect [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])
(values input-port? output-port?)]{
Like @racket[tcp-connect] from @racketmodname[racket/tcp].}
@defproc[(tcp-connect/enable-break [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)])
(values input-port? output-port?)]{
Like @racket[tcp-connect/enable-break] from @racketmodname[racket/tcp].}
@defproc[(tcp-accept [listener @#,sigelem[tcp^ tcp-listener?]])
(values input-port? output-port?)]{
Like @racket[tcp-accept] from @racketmodname[racket/tcp].}
@defproc[(tcp-accept/enable-break [listener @#,sigelem[tcp^ tcp-listener?]])
(values input-port? output-port?)]{
Like @racket[tcp-accept/enable-break] from @racketmodname[racket/tcp].}
@defproc[(tcp-accept-ready? [listener @#,sigelem[tcp^ tcp-listener?]]) boolean?]{
Like @racket[tcp-accept-ready?] from @racketmodname[racket/tcp].}
@defproc[(tcp-close [listener @#,sigelem[tcp^ tcp-listener?]]) void?]{
Like @racket[tcp-close] from @racketmodname[racket/tcp].}
@defproc[(tcp-listener? [v any/c]) boolean?]{
Like @racket[tcp-listener?] from @racketmodname[racket/tcp].}
@defproc[(tcp-abandon-port [tcp-port port?]) void?]{
Like @racket[tcp-abandon-port] from @racketmodname[racket/tcp].}
@defproc[(tcp-addresses [tcp-port port?]
[port-numbers? any/c #f])
(or/c (values string? string?)
(values string? (integer-in 1 65535)
string? (integer-in 1 65535)))]{
Like @racket[tcp-addresses] from @racketmodname[racket/tcp].}
}
@section{TCP Unit}
@defmodule[net/tcp-unit]
@defthing[tcp@ unit?]{
Imports nothing and exports @racket[tcp^], implemented using
@racketmodname[racket/tcp].}