|
|
1.1 ! root 1: .\" Copyright (c) 1983 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)connect.2 6.8 (Berkeley) 6/23/90 ! 19: .\" ! 20: .TH CONNECT 2 "June 23, 1990" ! 21: .UC 5 ! 22: .SH NAME ! 23: connect \- initiate a connection on a socket ! 24: .SH SYNOPSIS ! 25: .nf ! 26: .ft B ! 27: #include <sys/types.h> ! 28: #include <sys/socket.h> ! 29: .PP ! 30: .ft B ! 31: connect(s, name, namelen) ! 32: int s; ! 33: struct sockaddr *name; ! 34: int namelen; ! 35: .fi ! 36: .SH DESCRIPTION ! 37: The parameter ! 38: .I s ! 39: is a socket. ! 40: If it is of type SOCK_DGRAM, ! 41: then this call specifies the peer with which the socket is to be associated; ! 42: this address is that to which datagrams are to be sent, ! 43: and the only address from which datagrams are to be received. ! 44: If the socket is of type SOCK_STREAM, ! 45: then this call attempts to make a connection to ! 46: another socket. ! 47: The other socket is specified by ! 48: .I name, ! 49: which is an address in the communications space of the socket. ! 50: Each communications space interprets the ! 51: .I name ! 52: parameter in its own way. ! 53: Generally, stream sockets may successfully ! 54: .I connect ! 55: only once; datagram sockets may use ! 56: .I connect ! 57: multiple times to change their association. ! 58: Datagram sockets may dissolve the association ! 59: by connecting to an invalid address, such as a null address. ! 60: .SH "RETURN VALUE ! 61: If the connection or binding succeeds, then 0 is returned. ! 62: Otherwise a \-1 is returned, and a more specific error ! 63: code is stored in \fIerrno\fP. ! 64: .SH "ERRORS ! 65: The call fails if: ! 66: .TP 20 ! 67: [EBADF] ! 68: .I S ! 69: is not a valid descriptor. ! 70: .TP 20 ! 71: [ENOTSOCK] ! 72: .I S ! 73: is a descriptor for a file, not a socket. ! 74: .TP 20 ! 75: [EADDRNOTAVAIL] ! 76: The specified address is not available on this machine. ! 77: .TP 20 ! 78: [EAFNOSUPPORT] ! 79: Addresses in the specified address family cannot be used with this socket. ! 80: .TP 20 ! 81: [EISCONN] ! 82: The socket is already connected. ! 83: .TP 20 ! 84: [ETIMEDOUT] ! 85: Connection establishment timed out without establishing a connection. ! 86: .TP 20 ! 87: [ECONNREFUSED] ! 88: The attempt to connect was forcefully rejected. ! 89: .TP 20 ! 90: [ENETUNREACH] ! 91: The network isn't reachable from this host. ! 92: .TP 20 ! 93: [EADDRINUSE] ! 94: The address is already in use. ! 95: .TP 20 ! 96: [EFAULT] ! 97: The \fIname\fP parameter specifies an area outside ! 98: the process address space. ! 99: .TP 20 ! 100: [EINPROGRESS] ! 101: The socket is non-blocking ! 102: and the connection cannot ! 103: be completed immediately. ! 104: It is possible to ! 105: .IR select (2) ! 106: for completion by selecting the socket for writing. ! 107: .TP 20 ! 108: [EALREADY] ! 109: The socket is non-blocking ! 110: and a previous connection attempt ! 111: has not yet been completed. ! 112: .PP ! 113: The following errors are specific to connecting names in the UNIX domain. ! 114: These errors may not apply in future versions of the UNIX IPC domain. ! 115: .TP 15 ! 116: [ENOTDIR] ! 117: A component of the path prefix is not a directory. ! 118: .TP 15 ! 119: [EINVAL] ! 120: The pathname contains a character with the high-order bit set. ! 121: .TP 15 ! 122: [ENAMETOOLONG] ! 123: A component of a pathname exceeded 255 characters, ! 124: or an entire path name exceeded 1023 characters. ! 125: .TP 15 ! 126: [ENOENT] ! 127: The named socket does not exist. ! 128: .TP 15 ! 129: [EACCES] ! 130: Search permission is denied for a component of the path prefix. ! 131: .TP 15 ! 132: [EACCES] ! 133: Write access to the named socket is denied. ! 134: .TP 15 ! 135: [ELOOP] ! 136: Too many symbolic links were encountered in translating the pathname. ! 137: .SH SEE ALSO ! 138: accept(2), select(2), socket(2), getsockname(2)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.