Annotation of researchv10dc/man/adm/man3/tcp.3, revision 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.