Imported Upstream version 1.64.0
[platform/upstream/boost.git] / doc / html / boost_asio / reference / basic_socket.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>basic_socket</title>
5 <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../boost_asio.html" title="Boost.Asio">
8 <link rel="up" href="../reference.html" title="Reference">
9 <link rel="prev" href="basic_signal_set/service_type.html" title="basic_signal_set::service_type">
10 <link rel="next" href="basic_socket/assign.html" title="basic_socket::assign">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
15 <td align="center"><a href="../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="basic_signal_set/service_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../boost_asio.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="basic_socket/assign.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_asio.reference.basic_socket"></a><a class="link" href="basic_socket.html" title="basic_socket">basic_socket</a>
28 </h3></div></div></div>
29 <p>
30         Provides socket functionality.
31       </p>
32 <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
33     <span class="keyword">typename</span> <a class="link" href="Protocol.html" title="Protocol requirements">Protocol</a><span class="special">,</span>
34     <span class="keyword">typename</span> <a class="link" href="SocketService.html" title="Socket service requirements">SocketService</a><span class="special">&gt;</span>
35 <span class="keyword">class</span> <span class="identifier">basic_socket</span> <span class="special">:</span>
36   <span class="keyword">public</span> <span class="identifier">basic_io_object</span><span class="special">&lt;</span> <span class="identifier">SocketService</span> <span class="special">&gt;,</span>
37   <span class="keyword">public</span> <span class="identifier">socket_base</span>
38 </pre>
39 <h5>
40 <a name="boost_asio.reference.basic_socket.h0"></a>
41         <span class="phrase"><a name="boost_asio.reference.basic_socket.types"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.types">Types</a>
42       </h5>
43 <div class="informaltable"><table class="table">
44 <colgroup>
45 <col>
46 <col>
47 </colgroup>
48 <thead><tr>
49 <th>
50                 <p>
51                   Name
52                 </p>
53               </th>
54 <th>
55                 <p>
56                   Description
57                 </p>
58               </th>
59 </tr></thead>
60 <tbody>
61 <tr>
62 <td>
63                 <p>
64                   <a class="link" href="basic_socket/broadcast.html" title="basic_socket::broadcast"><span class="bold"><strong>broadcast</strong></span></a>
65                 </p>
66               </td>
67 <td>
68                 <p>
69                   Socket option to permit sending of broadcast messages.
70                 </p>
71               </td>
72 </tr>
73 <tr>
74 <td>
75                 <p>
76                   <a class="link" href="basic_socket/bytes_readable.html" title="basic_socket::bytes_readable"><span class="bold"><strong>bytes_readable</strong></span></a>
77                 </p>
78               </td>
79 <td>
80                 <p>
81                   IO control command to get the amount of data that can be read without
82                   blocking.
83                 </p>
84               </td>
85 </tr>
86 <tr>
87 <td>
88                 <p>
89                   <a class="link" href="basic_socket/debug.html" title="basic_socket::debug"><span class="bold"><strong>debug</strong></span></a>
90                 </p>
91               </td>
92 <td>
93                 <p>
94                   Socket option to enable socket-level debugging.
95                 </p>
96               </td>
97 </tr>
98 <tr>
99 <td>
100                 <p>
101                   <a class="link" href="basic_socket/do_not_route.html" title="basic_socket::do_not_route"><span class="bold"><strong>do_not_route</strong></span></a>
102                 </p>
103               </td>
104 <td>
105                 <p>
106                   Socket option to prevent routing, use local interfaces only.
107                 </p>
108               </td>
109 </tr>
110 <tr>
111 <td>
112                 <p>
113                   <a class="link" href="basic_socket/enable_connection_aborted.html" title="basic_socket::enable_connection_aborted"><span class="bold"><strong>enable_connection_aborted</strong></span></a>
114                 </p>
115               </td>
116 <td>
117                 <p>
118                   Socket option to report aborted connections on accept.
119                 </p>
120               </td>
121 </tr>
122 <tr>
123 <td>
124                 <p>
125                   <a class="link" href="basic_socket/endpoint_type.html" title="basic_socket::endpoint_type"><span class="bold"><strong>endpoint_type</strong></span></a>
126                 </p>
127               </td>
128 <td>
129                 <p>
130                   The endpoint type.
131                 </p>
132               </td>
133 </tr>
134 <tr>
135 <td>
136                 <p>
137                   <a class="link" href="basic_socket/implementation_type.html" title="basic_socket::implementation_type"><span class="bold"><strong>implementation_type</strong></span></a>
138                 </p>
139               </td>
140 <td>
141                 <p>
142                   The underlying implementation type of I/O object.
143                 </p>
144               </td>
145 </tr>
146 <tr>
147 <td>
148                 <p>
149                   <a class="link" href="basic_socket/keep_alive.html" title="basic_socket::keep_alive"><span class="bold"><strong>keep_alive</strong></span></a>
150                 </p>
151               </td>
152 <td>
153                 <p>
154                   Socket option to send keep-alives.
155                 </p>
156               </td>
157 </tr>
158 <tr>
159 <td>
160                 <p>
161                   <a class="link" href="basic_socket/linger.html" title="basic_socket::linger"><span class="bold"><strong>linger</strong></span></a>
162                 </p>
163               </td>
164 <td>
165                 <p>
166                   Socket option to specify whether the socket lingers on close if
167                   unsent data is present.
168                 </p>
169               </td>
170 </tr>
171 <tr>
172 <td>
173                 <p>
174                   <a class="link" href="basic_socket/lowest_layer_type.html" title="basic_socket::lowest_layer_type"><span class="bold"><strong>lowest_layer_type</strong></span></a>
175                 </p>
176               </td>
177 <td>
178                 <p>
179                   A basic_socket is always the lowest layer.
180                 </p>
181               </td>
182 </tr>
183 <tr>
184 <td>
185                 <p>
186                   <a class="link" href="basic_socket/message_flags.html" title="basic_socket::message_flags"><span class="bold"><strong>message_flags</strong></span></a>
187                 </p>
188               </td>
189 <td>
190                 <p>
191                   Bitmask type for flags that can be passed to send and receive operations.
192                 </p>
193               </td>
194 </tr>
195 <tr>
196 <td>
197                 <p>
198                   <a class="link" href="basic_socket/native_handle_type.html" title="basic_socket::native_handle_type"><span class="bold"><strong>native_handle_type</strong></span></a>
199                 </p>
200               </td>
201 <td>
202                 <p>
203                   The native representation of a socket.
204                 </p>
205               </td>
206 </tr>
207 <tr>
208 <td>
209                 <p>
210                   <a class="link" href="basic_socket/native_type.html" title="basic_socket::native_type"><span class="bold"><strong>native_type</strong></span></a>
211                 </p>
212               </td>
213 <td>
214                 <p>
215                   (Deprecated: Use native_handle_type.) The native representation
216                   of a socket.
217                 </p>
218               </td>
219 </tr>
220 <tr>
221 <td>
222                 <p>
223                   <a class="link" href="basic_socket/non_blocking_io.html" title="basic_socket::non_blocking_io"><span class="bold"><strong>non_blocking_io</strong></span></a>
224                 </p>
225               </td>
226 <td>
227                 <p>
228                   (Deprecated: Use non_blocking().) IO control command to set the
229                   blocking mode of the socket.
230                 </p>
231               </td>
232 </tr>
233 <tr>
234 <td>
235                 <p>
236                   <a class="link" href="basic_socket/protocol_type.html" title="basic_socket::protocol_type"><span class="bold"><strong>protocol_type</strong></span></a>
237                 </p>
238               </td>
239 <td>
240                 <p>
241                   The protocol type.
242                 </p>
243               </td>
244 </tr>
245 <tr>
246 <td>
247                 <p>
248                   <a class="link" href="basic_socket/receive_buffer_size.html" title="basic_socket::receive_buffer_size"><span class="bold"><strong>receive_buffer_size</strong></span></a>
249                 </p>
250               </td>
251 <td>
252                 <p>
253                   Socket option for the receive buffer size of a socket.
254                 </p>
255               </td>
256 </tr>
257 <tr>
258 <td>
259                 <p>
260                   <a class="link" href="basic_socket/receive_low_watermark.html" title="basic_socket::receive_low_watermark"><span class="bold"><strong>receive_low_watermark</strong></span></a>
261                 </p>
262               </td>
263 <td>
264                 <p>
265                   Socket option for the receive low watermark.
266                 </p>
267               </td>
268 </tr>
269 <tr>
270 <td>
271                 <p>
272                   <a class="link" href="basic_socket/reuse_address.html" title="basic_socket::reuse_address"><span class="bold"><strong>reuse_address</strong></span></a>
273                 </p>
274               </td>
275 <td>
276                 <p>
277                   Socket option to allow the socket to be bound to an address that
278                   is already in use.
279                 </p>
280               </td>
281 </tr>
282 <tr>
283 <td>
284                 <p>
285                   <a class="link" href="basic_socket/send_buffer_size.html" title="basic_socket::send_buffer_size"><span class="bold"><strong>send_buffer_size</strong></span></a>
286                 </p>
287               </td>
288 <td>
289                 <p>
290                   Socket option for the send buffer size of a socket.
291                 </p>
292               </td>
293 </tr>
294 <tr>
295 <td>
296                 <p>
297                   <a class="link" href="basic_socket/send_low_watermark.html" title="basic_socket::send_low_watermark"><span class="bold"><strong>send_low_watermark</strong></span></a>
298                 </p>
299               </td>
300 <td>
301                 <p>
302                   Socket option for the send low watermark.
303                 </p>
304               </td>
305 </tr>
306 <tr>
307 <td>
308                 <p>
309                   <a class="link" href="basic_socket/service_type.html" title="basic_socket::service_type"><span class="bold"><strong>service_type</strong></span></a>
310                 </p>
311               </td>
312 <td>
313                 <p>
314                   The type of the service that will be used to provide I/O operations.
315                 </p>
316               </td>
317 </tr>
318 <tr>
319 <td>
320                 <p>
321                   <a class="link" href="basic_socket/shutdown_type.html" title="basic_socket::shutdown_type"><span class="bold"><strong>shutdown_type</strong></span></a>
322                 </p>
323               </td>
324 <td>
325                 <p>
326                   Different ways a socket may be shutdown.
327                 </p>
328               </td>
329 </tr>
330 </tbody>
331 </table></div>
332 <h5>
333 <a name="boost_asio.reference.basic_socket.h1"></a>
334         <span class="phrase"><a name="boost_asio.reference.basic_socket.member_functions"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.member_functions">Member
335         Functions</a>
336       </h5>
337 <div class="informaltable"><table class="table">
338 <colgroup>
339 <col>
340 <col>
341 </colgroup>
342 <thead><tr>
343 <th>
344                 <p>
345                   Name
346                 </p>
347               </th>
348 <th>
349                 <p>
350                   Description
351                 </p>
352               </th>
353 </tr></thead>
354 <tbody>
355 <tr>
356 <td>
357                 <p>
358                   <a class="link" href="basic_socket/assign.html" title="basic_socket::assign"><span class="bold"><strong>assign</strong></span></a>
359                 </p>
360               </td>
361 <td>
362                 <p>
363                   Assign an existing native socket to the socket.
364                 </p>
365               </td>
366 </tr>
367 <tr>
368 <td>
369                 <p>
370                   <a class="link" href="basic_socket/async_connect.html" title="basic_socket::async_connect"><span class="bold"><strong>async_connect</strong></span></a>
371                 </p>
372               </td>
373 <td>
374                 <p>
375                   Start an asynchronous connect.
376                 </p>
377               </td>
378 </tr>
379 <tr>
380 <td>
381                 <p>
382                   <a class="link" href="basic_socket/at_mark.html" title="basic_socket::at_mark"><span class="bold"><strong>at_mark</strong></span></a>
383                 </p>
384               </td>
385 <td>
386                 <p>
387                   Determine whether the socket is at the out-of-band data mark.
388                 </p>
389               </td>
390 </tr>
391 <tr>
392 <td>
393                 <p>
394                   <a class="link" href="basic_socket/available.html" title="basic_socket::available"><span class="bold"><strong>available</strong></span></a>
395                 </p>
396               </td>
397 <td>
398                 <p>
399                   Determine the number of bytes available for reading.
400                 </p>
401               </td>
402 </tr>
403 <tr>
404 <td>
405                 <p>
406                   <a class="link" href="basic_socket/basic_socket.html" title="basic_socket::basic_socket"><span class="bold"><strong>basic_socket</strong></span></a>
407                 </p>
408               </td>
409 <td>
410                 <p>
411                   Construct a basic_socket without opening it.
412                 </p>
413                 <p>
414                   Construct and open a basic_socket.
415                 </p>
416                 <p>
417                   Construct a basic_socket, opening it and binding it to the given
418                   local endpoint.
419                 </p>
420                 <p>
421                   Construct a basic_socket on an existing native socket.
422                 </p>
423                 <p>
424                   Move-construct a basic_socket from another.
425                 </p>
426                 <p>
427                   Move-construct a basic_socket from a socket of another protocol
428                   type.
429                 </p>
430               </td>
431 </tr>
432 <tr>
433 <td>
434                 <p>
435                   <a class="link" href="basic_socket/bind.html" title="basic_socket::bind"><span class="bold"><strong>bind</strong></span></a>
436                 </p>
437               </td>
438 <td>
439                 <p>
440                   Bind the socket to the given local endpoint.
441                 </p>
442               </td>
443 </tr>
444 <tr>
445 <td>
446                 <p>
447                   <a class="link" href="basic_socket/cancel.html" title="basic_socket::cancel"><span class="bold"><strong>cancel</strong></span></a>
448                 </p>
449               </td>
450 <td>
451                 <p>
452                   Cancel all asynchronous operations associated with the socket.
453                 </p>
454               </td>
455 </tr>
456 <tr>
457 <td>
458                 <p>
459                   <a class="link" href="basic_socket/close.html" title="basic_socket::close"><span class="bold"><strong>close</strong></span></a>
460                 </p>
461               </td>
462 <td>
463                 <p>
464                   Close the socket.
465                 </p>
466               </td>
467 </tr>
468 <tr>
469 <td>
470                 <p>
471                   <a class="link" href="basic_socket/connect.html" title="basic_socket::connect"><span class="bold"><strong>connect</strong></span></a>
472                 </p>
473               </td>
474 <td>
475                 <p>
476                   Connect the socket to the specified endpoint.
477                 </p>
478               </td>
479 </tr>
480 <tr>
481 <td>
482                 <p>
483                   <a class="link" href="basic_socket/get_io_service.html" title="basic_socket::get_io_service"><span class="bold"><strong>get_io_service</strong></span></a>
484                 </p>
485               </td>
486 <td>
487                 <p>
488                   Get the io_service associated with the object.
489                 </p>
490               </td>
491 </tr>
492 <tr>
493 <td>
494                 <p>
495                   <a class="link" href="basic_socket/get_option.html" title="basic_socket::get_option"><span class="bold"><strong>get_option</strong></span></a>
496                 </p>
497               </td>
498 <td>
499                 <p>
500                   Get an option from the socket.
501                 </p>
502               </td>
503 </tr>
504 <tr>
505 <td>
506                 <p>
507                   <a class="link" href="basic_socket/io_control.html" title="basic_socket::io_control"><span class="bold"><strong>io_control</strong></span></a>
508                 </p>
509               </td>
510 <td>
511                 <p>
512                   Perform an IO control command on the socket.
513                 </p>
514               </td>
515 </tr>
516 <tr>
517 <td>
518                 <p>
519                   <a class="link" href="basic_socket/is_open.html" title="basic_socket::is_open"><span class="bold"><strong>is_open</strong></span></a>
520                 </p>
521               </td>
522 <td>
523                 <p>
524                   Determine whether the socket is open.
525                 </p>
526               </td>
527 </tr>
528 <tr>
529 <td>
530                 <p>
531                   <a class="link" href="basic_socket/local_endpoint.html" title="basic_socket::local_endpoint"><span class="bold"><strong>local_endpoint</strong></span></a>
532                 </p>
533               </td>
534 <td>
535                 <p>
536                   Get the local endpoint of the socket.
537                 </p>
538               </td>
539 </tr>
540 <tr>
541 <td>
542                 <p>
543                   <a class="link" href="basic_socket/lowest_layer.html" title="basic_socket::lowest_layer"><span class="bold"><strong>lowest_layer</strong></span></a>
544                 </p>
545               </td>
546 <td>
547                 <p>
548                   Get a reference to the lowest layer.
549                 </p>
550                 <p>
551                   Get a const reference to the lowest layer.
552                 </p>
553               </td>
554 </tr>
555 <tr>
556 <td>
557                 <p>
558                   <a class="link" href="basic_socket/native.html" title="basic_socket::native"><span class="bold"><strong>native</strong></span></a>
559                 </p>
560               </td>
561 <td>
562                 <p>
563                   (Deprecated: Use native_handle().) Get the native socket representation.
564                 </p>
565               </td>
566 </tr>
567 <tr>
568 <td>
569                 <p>
570                   <a class="link" href="basic_socket/native_handle.html" title="basic_socket::native_handle"><span class="bold"><strong>native_handle</strong></span></a>
571                 </p>
572               </td>
573 <td>
574                 <p>
575                   Get the native socket representation.
576                 </p>
577               </td>
578 </tr>
579 <tr>
580 <td>
581                 <p>
582                   <a class="link" href="basic_socket/native_non_blocking.html" title="basic_socket::native_non_blocking"><span class="bold"><strong>native_non_blocking</strong></span></a>
583                 </p>
584               </td>
585 <td>
586                 <p>
587                   Gets the non-blocking mode of the native socket implementation.
588                 </p>
589                 <p>
590                   Sets the non-blocking mode of the native socket implementation.
591                 </p>
592               </td>
593 </tr>
594 <tr>
595 <td>
596                 <p>
597                   <a class="link" href="basic_socket/non_blocking.html" title="basic_socket::non_blocking"><span class="bold"><strong>non_blocking</strong></span></a>
598                 </p>
599               </td>
600 <td>
601                 <p>
602                   Gets the non-blocking mode of the socket.
603                 </p>
604                 <p>
605                   Sets the non-blocking mode of the socket.
606                 </p>
607               </td>
608 </tr>
609 <tr>
610 <td>
611                 <p>
612                   <a class="link" href="basic_socket/open.html" title="basic_socket::open"><span class="bold"><strong>open</strong></span></a>
613                 </p>
614               </td>
615 <td>
616                 <p>
617                   Open the socket using the specified protocol.
618                 </p>
619               </td>
620 </tr>
621 <tr>
622 <td>
623                 <p>
624                   <a class="link" href="basic_socket/operator_eq_.html" title="basic_socket::operator="><span class="bold"><strong>operator=</strong></span></a>
625                 </p>
626               </td>
627 <td>
628                 <p>
629                   Move-assign a basic_socket from another.
630                 </p>
631                 <p>
632                   Move-assign a basic_socket from a socket of another protocol type.
633                 </p>
634               </td>
635 </tr>
636 <tr>
637 <td>
638                 <p>
639                   <a class="link" href="basic_socket/remote_endpoint.html" title="basic_socket::remote_endpoint"><span class="bold"><strong>remote_endpoint</strong></span></a>
640                 </p>
641               </td>
642 <td>
643                 <p>
644                   Get the remote endpoint of the socket.
645                 </p>
646               </td>
647 </tr>
648 <tr>
649 <td>
650                 <p>
651                   <a class="link" href="basic_socket/set_option.html" title="basic_socket::set_option"><span class="bold"><strong>set_option</strong></span></a>
652                 </p>
653               </td>
654 <td>
655                 <p>
656                   Set an option on the socket.
657                 </p>
658               </td>
659 </tr>
660 <tr>
661 <td>
662                 <p>
663                   <a class="link" href="basic_socket/shutdown.html" title="basic_socket::shutdown"><span class="bold"><strong>shutdown</strong></span></a>
664                 </p>
665               </td>
666 <td>
667                 <p>
668                   Disable sends or receives on the socket.
669                 </p>
670               </td>
671 </tr>
672 </tbody>
673 </table></div>
674 <h5>
675 <a name="boost_asio.reference.basic_socket.h2"></a>
676         <span class="phrase"><a name="boost_asio.reference.basic_socket.protected_member_functions"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.protected_member_functions">Protected
677         Member Functions</a>
678       </h5>
679 <div class="informaltable"><table class="table">
680 <colgroup>
681 <col>
682 <col>
683 </colgroup>
684 <thead><tr>
685 <th>
686                 <p>
687                   Name
688                 </p>
689               </th>
690 <th>
691                 <p>
692                   Description
693                 </p>
694               </th>
695 </tr></thead>
696 <tbody>
697 <tr>
698 <td>
699                 <p>
700                   <a class="link" href="basic_socket/get_implementation.html" title="basic_socket::get_implementation"><span class="bold"><strong>get_implementation</strong></span></a>
701                 </p>
702               </td>
703 <td>
704                 <p>
705                   Get the underlying implementation of the I/O object.
706                 </p>
707               </td>
708 </tr>
709 <tr>
710 <td>
711                 <p>
712                   <a class="link" href="basic_socket/get_service.html" title="basic_socket::get_service"><span class="bold"><strong>get_service</strong></span></a>
713                 </p>
714               </td>
715 <td>
716                 <p>
717                   Get the service associated with the I/O object.
718                 </p>
719               </td>
720 </tr>
721 <tr>
722 <td>
723                 <p>
724                   <a class="link" href="basic_socket/_basic_socket.html" title="basic_socket::~basic_socket"><span class="bold"><strong>~basic_socket</strong></span></a>
725                 </p>
726               </td>
727 <td>
728                 <p>
729                   Protected destructor to prevent deletion through this type.
730                 </p>
731               </td>
732 </tr>
733 </tbody>
734 </table></div>
735 <h5>
736 <a name="boost_asio.reference.basic_socket.h3"></a>
737         <span class="phrase"><a name="boost_asio.reference.basic_socket.data_members"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.data_members">Data
738         Members</a>
739       </h5>
740 <div class="informaltable"><table class="table">
741 <colgroup>
742 <col>
743 <col>
744 </colgroup>
745 <thead><tr>
746 <th>
747                 <p>
748                   Name
749                 </p>
750               </th>
751 <th>
752                 <p>
753                   Description
754                 </p>
755               </th>
756 </tr></thead>
757 <tbody>
758 <tr>
759 <td>
760                 <p>
761                   <a class="link" href="basic_socket/max_connections.html" title="basic_socket::max_connections"><span class="bold"><strong>max_connections</strong></span></a>
762                 </p>
763               </td>
764 <td>
765                 <p>
766                   The maximum length of the queue of pending incoming connections.
767                 </p>
768               </td>
769 </tr>
770 <tr>
771 <td>
772                 <p>
773                   <a class="link" href="basic_socket/message_do_not_route.html" title="basic_socket::message_do_not_route"><span class="bold"><strong>message_do_not_route</strong></span></a>
774                 </p>
775               </td>
776 <td>
777                 <p>
778                   Specify that the data should not be subject to routing.
779                 </p>
780               </td>
781 </tr>
782 <tr>
783 <td>
784                 <p>
785                   <a class="link" href="basic_socket/message_end_of_record.html" title="basic_socket::message_end_of_record"><span class="bold"><strong>message_end_of_record</strong></span></a>
786                 </p>
787               </td>
788 <td>
789                 <p>
790                   Specifies that the data marks the end of a record.
791                 </p>
792               </td>
793 </tr>
794 <tr>
795 <td>
796                 <p>
797                   <a class="link" href="basic_socket/message_out_of_band.html" title="basic_socket::message_out_of_band"><span class="bold"><strong>message_out_of_band</strong></span></a>
798                 </p>
799               </td>
800 <td>
801                 <p>
802                   Process out-of-band data.
803                 </p>
804               </td>
805 </tr>
806 <tr>
807 <td>
808                 <p>
809                   <a class="link" href="basic_socket/message_peek.html" title="basic_socket::message_peek"><span class="bold"><strong>message_peek</strong></span></a>
810                 </p>
811               </td>
812 <td>
813                 <p>
814                   Peek at incoming data without removing it from the input queue.
815                 </p>
816               </td>
817 </tr>
818 </tbody>
819 </table></div>
820 <h5>
821 <a name="boost_asio.reference.basic_socket.h4"></a>
822         <span class="phrase"><a name="boost_asio.reference.basic_socket.protected_data_members"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.protected_data_members">Protected
823         Data Members</a>
824       </h5>
825 <div class="informaltable"><table class="table">
826 <colgroup>
827 <col>
828 <col>
829 </colgroup>
830 <thead><tr>
831 <th>
832                 <p>
833                   Name
834                 </p>
835               </th>
836 <th>
837                 <p>
838                   Description
839                 </p>
840               </th>
841 </tr></thead>
842 <tbody>
843 <tr>
844 <td>
845                 <p>
846                   <a class="link" href="basic_socket/implementation.html" title="basic_socket::implementation"><span class="bold"><strong>implementation</strong></span></a>
847                 </p>
848               </td>
849 <td>
850                 <p>
851                   (Deprecated: Use get_implementation().) The underlying implementation
852                   of the I/O object.
853                 </p>
854               </td>
855 </tr>
856 <tr>
857 <td>
858                 <p>
859                   <a class="link" href="basic_socket/service.html" title="basic_socket::service"><span class="bold"><strong>service</strong></span></a>
860                 </p>
861               </td>
862 <td>
863                 <p>
864                   (Deprecated: Use get_service().) The service associated with the
865                   I/O object.
866                 </p>
867               </td>
868 </tr>
869 </tbody>
870 </table></div>
871 <p>
872         The <a class="link" href="basic_socket.html" title="basic_socket"><code class="computeroutput"><span class="identifier">basic_socket</span></code></a>
873         class template provides functionality that is common to both stream-oriented
874         and datagram-oriented sockets.
875       </p>
876 <h5>
877 <a name="boost_asio.reference.basic_socket.h5"></a>
878         <span class="phrase"><a name="boost_asio.reference.basic_socket.thread_safety"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.thread_safety">Thread
879         Safety</a>
880       </h5>
881 <p>
882         <span class="emphasis"><em>Distinct</em></span> <span class="emphasis"><em>objects:</em></span> Safe.
883       </p>
884 <p>
885         <span class="emphasis"><em>Shared</em></span> <span class="emphasis"><em>objects:</em></span> Unsafe.
886       </p>
887 <h5>
888 <a name="boost_asio.reference.basic_socket.h6"></a>
889         <span class="phrase"><a name="boost_asio.reference.basic_socket.requirements"></a></span><a class="link" href="basic_socket.html#boost_asio.reference.basic_socket.requirements">Requirements</a>
890       </h5>
891 <p>
892         <span class="emphasis"><em>Header: </em></span><code class="literal">boost/asio/basic_socket.hpp</code>
893       </p>
894 <p>
895         <span class="emphasis"><em>Convenience header: </em></span><code class="literal">boost/asio.hpp</code>
896       </p>
897 </div>
898 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
899 <td align="left"></td>
900 <td align="right"><div class="copyright-footer">Copyright &#169; 2003-2017 Christopher M. Kohlhoff<p>
901         Distributed under the Boost Software License, Version 1.0. (See accompanying
902         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
903       </p>
904 </div></td>
905 </tr></table>
906 <hr>
907 <div class="spirit-nav">
908 <a accesskey="p" href="basic_signal_set/service_type.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../boost_asio.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="basic_socket/assign.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
909 </div>
910 </body>
911 </html>