HP Rp7410 BSD Sockets Interface Programmer's Guide - Page 38

Accepting a Connection

Page 38 highlights

Using Internet Stream Sockets Writing the Server Process backlog is the preferred number of unaccepted incoming connections allowed at a given time. The actual number may be greater than the specified backlog. When the request is full, further connection requests are rejected. A backlog of 0 specifies only 1 pending connection can exist at any given time. SOMAXCONN is defined in . The default setting is 20. When to Set Up Server to Listen The server process should be set up to listen after socket is created and bound and before the server can respond to connection requests. Refer to the listen(2) man page for more information on listen. Accepting a Connection The server process can accept any connection requests that enter its queue after it executes listen. accept creates a new socket for the connection and returns the socket descriptor for the new socket. The new socket: • Is created with the same properties as the old socket. • Has the same bound port address as the old socket. • Is connected to the client process's socket. accept blocks until there is a connection request from a client process in the queue, unless you are using nonblocking I/O. accept and its parameters are described in the following table. Include files: System call: #include #include #include s = accept(ls,addr,addrlen) int s; int ls; struct sockaddr *addr; int *addrlen; 38 Chapter 2

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196

38
Chapter 2
Using Internet Stream Sockets
Writing the Server Process
backlog
is the preferred number of unaccepted incoming connections
allowed at a given time. The actual number may be greater than the
specified backlog. When the request is full, further connection requests
are rejected.
A backlog of 0 specifies only 1 pending connection can exist at any given
time. SOMAXCONN is defined in
<sys/socket.h>
. The default setting
is 20.
When to Set Up Server to Listen
The server process should be set up to listen after socket is created and
bound and before the server can respond to connection requests. Refer to
the
listen(2)
man page for more information on
listen
.
Accepting a Connection
The server process can accept any connection requests that enter its
queue after it executes
listen
.
accept
creates a new socket for the
connection and returns the socket descriptor for the new socket. The new
socket:
Is created with the same properties as the old socket.
Has the same bound port address as the old socket.
Is connected to the client process's socket.
accept
blocks until there is a connection request from a client process in
the queue, unless you are using nonblocking I/O.
accept
and its
parameters are described in the following table.
Include files:
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
System call:
s = accept(ls,addr,addrlen)
int s;
int ls;
struct sockaddr *addr;
int *addrlen;