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