Annotation of researchv10dc/man/man3/tcp.3, revision 1.1.1.1

1.1       root        1: .TH TCP 3X
                      2: .CT 2 comm_mach
                      3: .SH NAME
                      4: tcp_sock, tcp_connect, tcp_listen, tcp_accept, tcp_rcmd \(mi tcp networking functions
                      5: .SH SYNOPSIS
                      6: .nf
                      7: .B #include <sys/inet/tcp_user.h>
                      8: .PP
                      9: .B int tcp_sock();
                     10: .PP
                     11: .B int tcp_connect(fd, tp)
                     12: .B int fd;
                     13: .B struct tcpuser *tp;
                     14: .PP
                     15: .B int tcp_listen(fd, tp)
                     16: .B int fd;
                     17: .B struct tcpuser *tp;
                     18: .PP
                     19: .B int tcp_accept(fd, tp)
                     20: .B int fd;
                     21: .B struct tcpuser *tp;
                     22: .PP
                     23: .B "int tcp_rcmd(host, port, locuser, remuser, cmd, fd2p)"
                     24: .B char *host, *port, *locuser, *remuser, *cmd;
                     25: .B int *fd2p;
                     26: .PP
                     27: .SH DESCRIPTION
                     28: These routines are loaded by the
                     29: .B -lin
                     30: option of
                     31: .IR ld (1).
                     32: .PP
                     33: TCP is a protocol layered
                     34: upon IP (internet protocol).
                     35: It provides full-duplex byte stream connections between
                     36: end points called sockets.
                     37: The address of a socket is composed of the internet address
                     38: of its host and the port number to which
                     39: the socket is bound.
                     40: .PP
                     41: .I Tcp_sock
                     42: returns the file descriptor of an unbound socket.
                     43: Once opened, a socket may be bound to a port number within the
                     44: host and set up as the active or passive end of a connection.
                     45: .PP
                     46: Addresses and parameters are passed in 
                     47: .B tcpuser
                     48: structures:
                     49: .PP
                     50: .nf
                     51: .ft L
                     52: .ta 8n
                     53: struct tcpuser {
                     54:        int code;
                     55:        tcp_port lport, fport;
                     56:        in_addr laddr, faddr;
                     57:        int param;
                     58: };
                     59: .fi
                     60: .ft R
                     61: .PP
                     62: .I Lport
                     63: and
                     64: .I laddr
                     65: refer to the port and address numbers of the local end of a connection.
                     66: .I Fport
                     67: and
                     68: .I faddr
                     69: refer to the port and address numbers of the foreign end of a connection.
                     70: .PP
                     71: .I Tcp_connect
                     72: binds socket
                     73: .I fd
                     74: to port
                     75: .IB tp ->lport
                     76: and attempts to set up a connection to
                     77: the socket bound to port
                     78: .IB tp ->fport
                     79: on host
                     80: .IB tp ->faddr.
                     81: If
                     82: .IB tp ->lport
                     83: is 0, a local port number is automatically
                     84: chosen.
                     85: .I Tcp_connect
                     86: returns 0
                     87: if the connection is established, \-1 otherwise.
                     88: .IB Tp ->lport
                     89: and
                     90: .IB tp ->laddr
                     91: are filled in to reflect the local port and address numbers for the connection.
                     92: Communication proceeds by performing
                     93: .IR read (2)
                     94: and
                     95: .IR write
                     96: on
                     97: .IR fd .
                     98: If
                     99: .IB tp ->param
                    100: is non-zero, it specifies options to set for the connection.
                    101: The only option supported is
                    102: .B SO_KEEPALIVE
                    103: which causes empty messages to be sent periodically to
                    104: detect dead connections.
                    105: .PP
                    106: .I Tcp_listen
                    107: binds socket
                    108: .I fd
                    109: to port
                    110: .IB tp ->lport
                    111: and configures the socket to listen for connection requests to that port.
                    112: If
                    113: .IB tp ->faddr
                    114: and
                    115: .IB tp ->fport
                    116: are non-zero, only connections coming from sockets on machine
                    117: .I faddr
                    118: and bound to port
                    119: .I fport
                    120: are listened for.
                    121: .I Tcp_listen
                    122: returns 0
                    123: on success, \-1
                    124: otherwise.
                    125: .IB tp ->laddr
                    126: is filled in to reflect the local address number for the connection.
                    127: .IR Select (2)
                    128: can be used with a listening socket to provide asynchronous polling of
                    129: connection requests by selecting for pending input on the socket.
                    130: .PP
                    131: .I Tcp_accept
                    132: waits for and accepts a connection request sent to the listening socket
                    133: .I fd.
                    134: When a connection arrives,
                    135: .I tcp_accept
                    136: returns a new file descriptor over which communications can proceed.
                    137: .IB Tp ->faddr,
                    138: .IB tp ->fport,
                    139: .IB tp ->laddr,
                    140: and
                    141: .IB tp ->lport
                    142: are filled in to identify the two ends of the connection.
                    143: .IB Tp ->param
                    144: is filled in with the minor device number of the
                    145: tcp device used for the new connection.
                    146: .I Fd
                    147: is left open and continues listening for connections.
                    148: .PP
                    149: .I Tcp_rcmd
                    150: remotely executes a
                    151: .I cmd
                    152: on
                    153: .I host
                    154: as user
                    155: .I remuser.
                    156: Standard input is attached to
                    157: .I cmd's
                    158: standard input and
                    159: .I cmd's
                    160: standard output is attached to standard output.
                    161: If
                    162: .I fd2p
                    163: is non-zero, it is filled with the file descriptor of a new TCP connection attached
                    164: to
                    165: .I cmd's
                    166: standard error.
                    167: Otherwise,
                    168: .I cmd's
                    169: standard error is attached to its standard output.
                    170: .SH FILES
                    171: .TP 12
                    172: .F /dev/tcp*
                    173: the socket devices
                    174: .SH SEE ALSO
                    175: .IR ipc (3),
                    176: .IR internet (3), 
                    177: .IR udp (3)
                    178: .SH DIAGNOSTICS
                    179: .I Tcp_sock
                    180: returns \-1
                    181: if no sockets are available.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.