docupdate: updated System.dll documentation
[mono.git] / mcs / class / System / Documentation / en / System.Net.Sockets / Socket.xml
1 <Type Name="Socket" FullName="System.Net.Sockets.Socket" FullNameSP="System_Net_Sockets_Socket" Maintainer="ecma">
2   <TypeSignature Language="ILASM" Value=".class public Socket extends System.Object implements System.IDisposable" />
3   <TypeSignature Language="C#" Value="public class Socket : IDisposable" />
4   <TypeSignature Language="ILAsm" Value=".class public auto ansi Socket extends System.Object implements class System.IDisposable" />
5   <MemberOfLibrary>Networking</MemberOfLibrary>
6   <AssemblyInfo>
7     <AssemblyName>System</AssemblyName>
8     <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
9     <AssemblyVersion>1.0.x.x</AssemblyVersion>
10     <AssemblyVersion>1.0.5000.0</AssemblyVersion>
11     <AssemblyVersion>2.0.0.0</AssemblyVersion>
12     <AssemblyVersion>4.0.0.0</AssemblyVersion>
13   </AssemblyInfo>
14   <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
15   <Base>
16     <BaseTypeName>System.Object</BaseTypeName>
17   </Base>
18   <Interfaces>
19     <Interface>
20       <InterfaceName>System.IDisposable</InterfaceName>
21     </Interface>
22   </Interfaces>
23   <Docs>
24     <summary>
25       <para> Creates a communication endpoint through which an application sends or receives data across a
26       network.</para>
27     </summary>
28     <remarks>
29       <para> This class enables a <see cref="T:System.Net.Sockets.Socket" /> instance to communicate with another socket
30    across a network. The communication can
31    be through connection-oriented and connectionless protocols using either data streams or datagrams
32    (discrete message packets).</para>
33       <para>Message-oriented protocols preserve message boundaries
34    and require that for each <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method call there is one
35    corresponding <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method call. For stream-oriented protocols, data
36    is transmitted without regards to message boundaries. In this case, for
37    example, multiple <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method calls might be necessary to
38    retrieve all the data from one <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method call. The protocol is set in
39    the <see langword="Socket" />
40    
41    class
42    constructor. </para>
43       <para>A <see cref="T:System.Net.Sockets.Socket" />
44 instance has a local and a remote endpoint associated with it. The local
45 endpoint contains the connection information for the current socket instance.
46 The remote endpoint contains the connection information for the socket that the current instance communicates with. The
47 endpoints are required to be an instance of a type derived from
48 the <see cref="T:System.Net.EndPoint" qualify="true" /> class. For the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) protocols, an endpoint
49 includes the address family, an Internet Protocol (IP) address, and a port number.
50 For connection-oriented protocols (for example, TCP), the remote endpoint
51 does not have to be specified when transferring data. For connectionless
52 protocols (for example, UDP), the remote endpoint is required to be specified.</para>
53       <para>Methods are provided for both synchronous and asynchronous
54    operations. A synchronous method can operate in blocking mode, in which it waits
55    (blocks) until the operation is complete before returning, or in non-blocking
56    mode, where it returns immediately, possibly before the operation has completed.
57    The blocking mode is set through the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property.</para>
58       <para> An asynchronous method returns immediately and, by convention, relies on a delegate to
59    complete the operation. Asynchronous methods have names which correspond to their
60    synchronous counterparts prefixed with either 'Begin' or End'. For example, the
61    synchronous <see cref="M:System.Net.Sockets.Socket.Accept" /> method has asynchronous counterpart methods
62    named <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> and <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" />. The
63    example for the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method shows the basic
64    steps for using an asynchronous operation. A complete working example follows this
65    discussion.</para>
66       <para>Connection-oriented protocols commonly use the client/server model. In this model, one of
67    the sockets is set up as a server, and one or more sockets are set
68    up as clients. A general procedure demonstrating the synchronous communication process for this model is as
69    follows.</para>
70       <para>On the server-side:</para>
71       <list type="number">
72         <item>
73           <term>
74       Create a socket to listen for incoming connection
75       requests.</term>
76         </item>
77         <item>
78           <term>
79       Set the local endpoint using the <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> method.</term>
80         </item>
81         <item>
82           <term>
83       Put the socket in the
84       listening state using the <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> method.</term>
85         </item>
86         <item>
87           <term>
88       At this point incoming connection requests from a
89       client are placed in a queue.</term>
90         </item>
91         <item>
92           <term>
93       Use the <see cref="M:System.Net.Sockets.Socket.Accept" /> method to create a server socket
94       for a connection request issued by a client-side socket. This sets the remote
95       endpoint.</term>
96         </item>
97         <item>
98           <term>
99       Use the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> and <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> methods to communicate with the
100       client socket.</term>
101         </item>
102         <item>
103           <term>
104       When communication is finished, terminate the connection
105       using the <see cref="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)" /> method.</term>
106         </item>
107         <item>
108           <term>
109       Release the resources allocated by the server socket using
110       the <see cref="M:System.Net.Sockets.Socket.Close" /> method.</term>
111         </item>
112         <item>
113           <term>
114       Release the resources allocated by the listener socket using the <see cref="M:System.Net.Sockets.Socket.Close" /> method.</term>
115         </item>
116       </list>
117       <para>On the client-side:</para>
118       <list type="number">
119         <item>
120           <term>
121       Create the client socket.</term>
122         </item>
123         <item>
124           <term>
125       Connect to the server socket using the <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> method.
126       This sets both the local and remote endpoints for the client socket.</term>
127         </item>
128         <item>
129           <term>
130       Use the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> and <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> methods to communicate with the
131       server socket.</term>
132         </item>
133         <item>
134           <term> When communication is finished, terminate the connection
135       using the <see cref="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)" /> method.</term>
136         </item>
137         <item>
138           <term>
139       Release
140       
141       the resources allocated by the client socket using
142       the <see cref="M:System.Net.Sockets.Socket.Close" />
143       
144       method.</term>
145         </item>
146       </list>
147       <para> The shutdown step in the previous procedure is
148    not necessary but ensures that any pending data is not lost. If the
149 <see cref="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)" /> method is not called, the 
150 <see cref="M:System.Net.Sockets.Socket.Close" /> 
151 method shuts
152 down the connection either gracefully or by force. A graceful closure attempts
153 to transfer all pending data before the connection is terminated. Use
154 the <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> socket option to specify a graceful closure for a
155 socket. </para>
156       <block subset="none" type="note">
157         <para> This implementation is based on the UNIX sockets implementation
158       in the Berkeley Software Distribution (BSD, release 4.3)
159       from the University of California at Berkeley. </para>
160       </block>
161     </remarks>
162     <example>
163       <para>The following examples provide a client/server
164       application that demonstrates the
165       use of asynchronous communication between sockets. Run the client and server on
166       different consoles.</para>
167       <para> The following code is for the
168       server application. Start this application before the client application.</para>
169       <code lang="C#">using System;
170 using System.Threading;
171 using System.Text;
172 using System.Net;
173 using System.Net.Sockets;
174
175 public class Server 
176 {
177   // used to pass state information to delegate
178   internal class StateObject 
179   {
180     internal byte[] sBuffer;
181     internal Socket sSocket;
182     internal StateObject(int size, Socket sock) {
183       sBuffer = new byte[size];
184       sSocket = sock;
185     }
186   }
187   static void Main() 
188   {
189     IPAddress ipAddress =
190       Dns.Resolve( Dns.GetHostName() ).AddressList[0];
191
192     IPEndPoint ipEndpoint =
193       new IPEndPoint(ipAddress, 1800);
194
195     Socket listenSocket =
196       new Socket(AddressFamily.InterNetwork,
197                  SocketType.Stream,
198                  ProtocolType.Tcp);
199
200     listenSocket.Bind(ipEndpoint);
201     listenSocket.Listen(1);
202     IAsyncResult asyncAccept = listenSocket.BeginAccept(
203       new AsyncCallback(Server.acceptCallback),
204       listenSocket );
205
206     // could call listenSocket.EndAccept(asyncAccept) here
207     // instead of in the callback method, but since 
208     // EndAccept blocks, the behavior would be similar to 
209     // calling the synchronous Accept method
210
211     Console.Write("Connection in progress.");
212     if( writeDot(asyncAccept) == true ) 
213     {
214       // allow time for callbacks to
215       // finish before the program ends 
216       Thread.Sleep(3000);
217     }
218   }
219
220   public static void
221     acceptCallback(IAsyncResult asyncAccept) {
222       Socket listenSocket = (Socket)asyncAccept.AsyncState;
223       Socket serverSocket =
224         listenSocket.EndAccept(asyncAccept);
225
226       // arriving here means the operation completed
227       // (asyncAccept.IsCompleted = true) but not
228       // necessarily successfully
229       if( serverSocket.Connected == false )
230       {
231         Console.WriteLine( ".server is not connected." );
232         return;
233       }
234       else Console.WriteLine( ".server is connected." );
235
236       listenSocket.Close();
237
238       StateObject stateObject =
239         new StateObject(16, serverSocket);
240
241       // this call passes the StateObject because it 
242       // needs to pass the buffer as well as the socket
243       IAsyncResult asyncReceive =
244         serverSocket.BeginReceive(
245           stateObject.sBuffer,
246           0,
247           stateObject.sBuffer.Length,
248           SocketFlags.None,
249           new AsyncCallback(receiveCallback),
250           stateObject);
251
252       Console.Write("Receiving data.");
253       writeDot(asyncReceive);
254   }
255
256   public static void
257     receiveCallback(IAsyncResult asyncReceive) {
258       StateObject stateObject =
259         (StateObject)asyncReceive.AsyncState;
260       int bytesReceived =
261         stateObject.sSocket.EndReceive(asyncReceive);
262
263       Console.WriteLine(
264         ".{0} bytes received: {1}",
265         bytesReceived.ToString(),
266         Encoding.ASCII.GetString(stateObject.sBuffer) );
267
268       byte[] sendBuffer =
269         Encoding.ASCII.GetBytes("Goodbye");
270       IAsyncResult asyncSend =
271         stateObject.sSocket.BeginSend(
272           sendBuffer,
273           0,
274           sendBuffer.Length,
275           SocketFlags.None,
276           new AsyncCallback(sendCallback),
277           stateObject.sSocket);
278
279       Console.Write("Sending response.");
280       writeDot(asyncSend);
281   }
282
283   public static void sendCallback(IAsyncResult asyncSend) {
284     Socket serverSocket = (Socket)asyncSend.AsyncState;
285     int bytesSent = serverSocket.EndSend(asyncSend);
286     Console.WriteLine(
287       ".{0} bytes sent.{1}{1}Shutting down.",
288       bytesSent.ToString(),
289       Environment.NewLine );
290
291     serverSocket.Shutdown(SocketShutdown.Both);
292     serverSocket.Close();
293   }
294
295   // times out after 20 seconds but operation continues
296   internal static bool writeDot(IAsyncResult ar)
297   {
298     int i = 0;
299     while( ar.IsCompleted == false ) 
300     {
301       if( i++ &gt; 40 ) 
302       {
303         Console.WriteLine("Timed out.");
304         return false;
305       }
306       Console.Write(".");
307       Thread.Sleep(500);
308     }
309     return true;
310   }
311 }
312    </code>
313       <para>The following code is for the client application. When
314       starting the application, supply the hostname of the console running the server
315       application as an input parameter (for example, ProgramName <paramref name="hostname" />
316       ). </para>
317       <code lang="C#">using System;
318 using System.Threading;
319 using System.Text;
320 using System.Net;
321 using System.Net.Sockets;
322
323 public class Client {
324
325   // used to pass state information to delegate
326   class StateObject 
327   {
328     internal byte[] sBuffer;
329     internal Socket sSocket;
330     internal StateObject(int size, Socket sock) {
331       sBuffer = new byte[size];
332       sSocket = sock;
333     }
334   }
335
336   static void Main(string[] argHostName) 
337   {
338     IPAddress ipAddress =
339       Dns.Resolve( argHostName[0] ).AddressList[0];
340
341     IPEndPoint ipEndpoint =
342       new IPEndPoint(ipAddress, 1800);
343
344     Socket clientSocket = new Socket(
345       AddressFamily.InterNetwork,
346       SocketType.Stream,
347       ProtocolType.Tcp);
348
349     IAsyncResult asyncConnect = clientSocket.BeginConnect(
350       ipEndpoint,
351       new AsyncCallback(connectCallback),
352       clientSocket );
353
354     Console.Write("Connection in progress.");
355     if( writeDot(asyncConnect) == true ) 
356     {
357       // allow time for callbacks to
358       // finish before the program ends
359       Thread.Sleep(3000);
360     }
361   }
362
363   public static void
364     connectCallback(IAsyncResult asyncConnect) {
365       Socket clientSocket =
366         (Socket)asyncConnect.AsyncState;
367       clientSocket.EndConnect(asyncConnect);
368       // arriving here means the operation completed
369       // (asyncConnect.IsCompleted = true) but not
370       // necessarily successfully
371       if( clientSocket.Connected == false )
372       {
373         Console.WriteLine( ".client is not connected." );
374         return;
375       }
376       else Console.WriteLine( ".client is connected." );
377
378       byte[] sendBuffer = Encoding.ASCII.GetBytes("Hello");
379       IAsyncResult asyncSend = clientSocket.BeginSend(
380         sendBuffer,
381         0,
382         sendBuffer.Length,
383         SocketFlags.None,
384         new AsyncCallback(sendCallback),
385         clientSocket);
386
387       Console.Write("Sending data.");
388       writeDot(asyncSend);
389   }
390
391   public static void sendCallback(IAsyncResult asyncSend) 
392   {
393     Socket clientSocket = (Socket)asyncSend.AsyncState;
394     int bytesSent = clientSocket.EndSend(asyncSend);
395     Console.WriteLine(
396       ".{0} bytes sent.",
397       bytesSent.ToString() );
398
399     StateObject stateObject =
400       new StateObject(16, clientSocket);
401
402     // this call passes the StateObject because it
403     // needs to pass the buffer as well as the socket
404     IAsyncResult asyncReceive =
405       clientSocket.BeginReceive(
406         stateObject.sBuffer,
407         0,
408         stateObject.sBuffer.Length,
409         SocketFlags.None,
410         new AsyncCallback(receiveCallback),
411         stateObject);
412
413     Console.Write("Receiving response.");
414     writeDot(asyncReceive);
415   }
416
417   public static void
418     receiveCallback(IAsyncResult asyncReceive) {
419       StateObject stateObject =
420        (StateObject)asyncReceive.AsyncState;
421
422       int bytesReceived =
423         stateObject.sSocket.EndReceive(asyncReceive);
424
425       Console.WriteLine(
426         ".{0} bytes received: {1}{2}{2}Shutting down.",
427         bytesReceived.ToString(),
428         Encoding.ASCII.GetString(stateObject.sBuffer),
429         Environment.NewLine );
430
431       stateObject.sSocket.Shutdown(SocketShutdown.Both);
432       stateObject.sSocket.Close();
433   }
434
435   // times out after 2 seconds but operation continues
436   internal static bool writeDot(IAsyncResult ar)
437   {
438     int i = 0;
439     while( ar.IsCompleted == false ) 
440     {
441       if( i++ &gt; 20 ) 
442       {
443         Console.WriteLine("Timed out.");
444         return false;
445       }
446       Console.Write(".");
447       Thread.Sleep(100);
448     }
449     return true;
450   }
451 }
452    </code>
453       <para>The output of the server application is</para>
454       <c>
455         <para>Connection in progress...........server is connected.</para>
456         <para>Receiving data......5 bytes received: Hello</para>
457         <para>Sending response....7 bytes sent.</para>
458         <para>Shutting down.</para>
459         <para>-----------------------------------------</para>
460       </c>
461       <para>The output of the client application is</para>
462       <c>
463         <para>Connection in progress......client is connected.</para>
464         <para>Sending data......5 bytes sent.</para>
465         <para>Receiving response......7 bytes received: Goodbye</para>
466         <para>Shutting down.</para>
467       </c>
468     </example>
469   </Docs>
470   <Members>
471     <Member MemberName=".ctor">
472       <MemberSignature Language="C#" Value="public Socket (System.Net.Sockets.SocketInformation socketInformation);" />
473       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype System.Net.Sockets.SocketInformation socketInformation) cil managed" />
474       <MemberType>Constructor</MemberType>
475       <AssemblyInfo>
476         <AssemblyVersion>2.0.0.0</AssemblyVersion>
477         <AssemblyVersion>4.0.0.0</AssemblyVersion>
478       </AssemblyInfo>
479       <Parameters>
480         <Parameter Name="socketInformation" Type="System.Net.Sockets.SocketInformation" />
481       </Parameters>
482       <Docs>
483         <param name="socketInformation">To be added.</param>
484         <summary>To be added.</summary>
485         <remarks>To be added.</remarks>
486       </Docs>
487     </Member>
488     <Member MemberName=".ctor">
489       <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(valuetype System.Net.Sockets.AddressFamily addressFamily, valuetype System.Net.Sockets.SocketType socketType, valuetype System.Net.Sockets.ProtocolType protocolType)" />
490       <MemberSignature Language="C#" Value="public Socket (System.Net.Sockets.AddressFamily addressFamily, System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType);" />
491       <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype System.Net.Sockets.AddressFamily addressFamily, valuetype System.Net.Sockets.SocketType socketType, valuetype System.Net.Sockets.ProtocolType protocolType) cil managed" />
492       <MemberType>Constructor</MemberType>
493       <AssemblyInfo>
494         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
495         <AssemblyVersion>2.0.0.0</AssemblyVersion>
496         <AssemblyVersion>4.0.0.0</AssemblyVersion>
497       </AssemblyInfo>
498       <ReturnValue />
499       <Parameters>
500         <Parameter Name="addressFamily" Type="System.Net.Sockets.AddressFamily" />
501         <Parameter Name="socketType" Type="System.Net.Sockets.SocketType" />
502         <Parameter Name="protocolType" Type="System.Net.Sockets.ProtocolType" />
503       </Parameters>
504       <Docs>
505         <param name="addressFamily">To be added.</param>
506         <param name="socketType">To be added.</param>
507         <param name="protocolType">To be added.</param>
508         <summary>
509           <para> Constructs and initializes a new instance of the <see cref="T:System.Net.Sockets.Socket" /> class.
510    </para>
511         </summary>
512         <remarks>
513           <para> The <paramref name="addressFamily " />parameter
514    specifies the addressing scheme used by the current instance, the <paramref name="socketType    " />parameter specifies the socket type of the current instance, and the
515 <paramref name="protocolType" /> parameter 
516    specifies the protocol
517    used by the current instance. The three parameters are not independent. Some
518    address families restrict which protocols are used, and often the socket type is
519    determined by the protocol. When the specified
520    values are not a valid combination, a <see cref="T:System.Net.Sockets.SocketException" /> exception
521    is thrown.</para>
522           <para>Using the <see langword="Unknown" /> member of either the
523 <see cref="T:System.Net.Sockets.AddressFamily" /> or <see cref="T:System.Net.Sockets.ProtocolType" /> enumeration, results 
524 in a <see cref="T:System.Net.Sockets.SocketException" />
525 exception being thrown.</para>
526         </remarks>
527         <exception cref="T:System.Net.Sockets.SocketException">
528           <para>The combination of <paramref name="addressFamily" />, <paramref name="socketType" />, and <paramref name="protocolType" /> is invalid.</para>
529           <para>-or-</para>
530           <para>An error occurred while creating the socket. </para>
531           <para>
532             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
533           </para>
534         </exception>
535       </Docs>
536       <Excluded>0</Excluded>
537     </Member>
538     <Member MemberName="Accept">
539       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.Net.Sockets.Socket Accept()" />
540       <MemberSignature Language="C#" Value="public System.Net.Sockets.Socket Accept ();" />
541       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Net.Sockets.Socket Accept() cil managed" />
542       <MemberType>Method</MemberType>
543       <AssemblyInfo>
544         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
545         <AssemblyVersion>2.0.0.0</AssemblyVersion>
546         <AssemblyVersion>4.0.0.0</AssemblyVersion>
547       </AssemblyInfo>
548       <ReturnValue>
549         <ReturnType>System.Net.Sockets.Socket</ReturnType>
550       </ReturnValue>
551       <Parameters />
552       <Docs>
553         <summary>
554           <para>Creates and initializes a new <see cref="T:System.Net.Sockets.Socket" /> instance and connects it to an incoming connection
555    request.</para>
556         </summary>
557         <returns>
558           <para> A new connected <see cref="T:System.Net.Sockets.Socket" />
559 instance.</para>
560         </returns>
561         <remarks>
562           <para> This method is used only on the server-side of connection-oriented protocols. It extracts the first
563       connection request from the queue of pending requests, creates a new <see cref="T:System.Net.Sockets.Socket" />
564       instance, and connects this instance to the socket associated with the request.</para>
565           <para> The <see cref="P:System.Net.Sockets.Socket.Blocking" /> property
566    of the socket determines the behavior of this method when there are no pending
567    connection requests. When <see langword="false" />, this method will throw a
568 <see cref="T:System.Net.Sockets.SocketException" />.
569    When <see langword="true" />, this method blocks.</para>
570           <para> The following properties of the new <see cref="T:System.Net.Sockets.Socket" /> instance returned by this method have values 
571 identical to the corresponding properties of the current instance:</para>
572           <list type="bullet">
573             <item>
574               <term>
575                 <see cref="P:System.Net.Sockets.Socket.AddressFamily" />
576               </term>
577             </item>
578             <item>
579               <term>
580                 <see cref="P:System.Net.Sockets.Socket.Blocking" />
581               </term>
582             </item>
583             <item>
584               <term>
585                 <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" />
586               </term>
587             </item>
588             <item>
589               <term>
590                 <see cref="P:System.Net.Sockets.Socket.ProtocolType" />
591               </term>
592             </item>
593             <item>
594               <term>
595                 <see cref="P:System.Net.Sockets.Socket.SocketType" />
596               </term>
597             </item>
598           </list>
599           <para> The <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> property of the new instance is set to the local endpoint of the first request in
600 the input queue. The <see cref="P:System.Net.Sockets.Socket.Connected" /> property is set to <see langword="true" />.</para>
601         </remarks>
602         <exception cref="T:System.ArgumentException">An error occurred while creating the new <see cref="T:System.Net.Sockets.Socket" />.</exception>
603         <exception cref="T:System.InvalidOperationException">
604           <para>An asynchronous call is pending and a blocking method has been called.</para>
605         </exception>
606         <exception cref="T:System.Net.Sockets.SocketException">
607           <para>An error occurred while accessing the listening socket or while creating the new socket.</para>
608           <para>-or-</para>
609           <para> The <see cref="P:System.Net.Sockets.Socket.Blocking" /> property is set to <see langword="false" />.</para>
610           <para>
611             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
612           </para>
613         </exception>
614         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
615       </Docs>
616       <Excluded>0</Excluded>
617     </Member>
618     <Member MemberName="AcceptAsync">
619       <MemberSignature Language="C#" Value="public bool AcceptAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
620       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool AcceptAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
621       <MemberType>Method</MemberType>
622       <AssemblyInfo>
623         <AssemblyVersion>2.0.0.0</AssemblyVersion>
624         <AssemblyVersion>4.0.0.0</AssemblyVersion>
625       </AssemblyInfo>
626       <ReturnValue>
627         <ReturnType>System.Boolean</ReturnType>
628       </ReturnValue>
629       <Parameters>
630         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
631       </Parameters>
632       <Docs>
633         <param name="e">To be added.</param>
634         <summary>To be added.</summary>
635         <returns>To be added.</returns>
636         <remarks>To be added.</remarks>
637       </Docs>
638     </Member>
639     <Member MemberName="AddressFamily">
640       <MemberSignature Language="ILASM" Value=".property valuetype System.Net.Sockets.AddressFamily AddressFamily { public hidebysig specialname instance valuetype System.Net.Sockets.AddressFamily get_AddressFamily() }" />
641       <MemberSignature Language="C#" Value="public System.Net.Sockets.AddressFamily AddressFamily { get; }" />
642       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Net.Sockets.AddressFamily AddressFamily" />
643       <MemberType>Property</MemberType>
644       <AssemblyInfo>
645         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
646         <AssemblyVersion>2.0.0.0</AssemblyVersion>
647         <AssemblyVersion>4.0.0.0</AssemblyVersion>
648       </AssemblyInfo>
649       <ReturnValue>
650         <ReturnType>System.Net.Sockets.AddressFamily</ReturnType>
651       </ReturnValue>
652       <Parameters />
653       <Docs>
654         <summary>
655           <para> Gets the address family of the current instance.
656       </para>
657         </summary>
658         <value>
659           <para>One of the values defined in
660       the <see cref="T:System.Net.Sockets.AddressFamily" /> enumeration.</para>
661         </value>
662         <remarks>
663           <para>This property is read-only.</para>
664           <para>This property is set by the constructor for the current instance. The value of this property specifies the addressing scheme used by the current instance to resolve an address.</para>
665         </remarks>
666       </Docs>
667       <Excluded>0</Excluded>
668     </Member>
669     <Member MemberName="Available">
670       <MemberSignature Language="ILASM" Value=".property int32 Available { public hidebysig specialname instance int32 get_Available() }" />
671       <MemberSignature Language="C#" Value="public int Available { get; }" />
672       <MemberSignature Language="ILAsm" Value=".property instance int32 Available" />
673       <MemberType>Property</MemberType>
674       <AssemblyInfo>
675         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
676         <AssemblyVersion>2.0.0.0</AssemblyVersion>
677         <AssemblyVersion>4.0.0.0</AssemblyVersion>
678       </AssemblyInfo>
679       <ReturnValue>
680         <ReturnType>System.Int32</ReturnType>
681       </ReturnValue>
682       <Parameters />
683       <Docs>
684         <summary>
685           <para> Gets the amount
686       of data available to be read in a single <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> or <see cref="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)" />
687       call.
688       </para>
689         </summary>
690         <value>
691           <para> A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes of data that are
692    available to be read.</para>
693         </value>
694         <remarks>
695           <para>This property is read-only.</para>
696           <para>When the current instance is stream-oriented (for example, the <see cref="F:System.Net.Sockets.SocketType.Stream" /> socket type), the available data
697    is generally the total amount of data queued on the current instance.</para>
698           <para>When the current instance is message-oriented (for example, the <see cref="F:System.Net.Sockets.SocketType.Dgram" /> socket type), the available data
699 is the first message in the input queue.</para>
700         </remarks>
701         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
702         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
703       </Docs>
704       <Excluded>0</Excluded>
705     </Member>
706     <Member MemberName="BeginAccept">
707       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.IAsyncResult BeginAccept(class System.AsyncCallback callback, object state)" />
708       <MemberSignature Language="C#" Value="public IAsyncResult BeginAccept (AsyncCallback callback, object state);" />
709       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginAccept(class System.AsyncCallback callback, object state) cil managed" />
710       <MemberType>Method</MemberType>
711       <AssemblyInfo>
712         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
713         <AssemblyVersion>2.0.0.0</AssemblyVersion>
714         <AssemblyVersion>4.0.0.0</AssemblyVersion>
715       </AssemblyInfo>
716       <ReturnValue>
717         <ReturnType>System.IAsyncResult</ReturnType>
718       </ReturnValue>
719       <Parameters>
720         <Parameter Name="callback" Type="System.AsyncCallback" />
721         <Parameter Name="state" Type="System.Object" />
722       </Parameters>
723       <Docs>
724         <param name="callback">A <see cref="T:System.AsyncCallback" /> delegate, or <see langword="null" />.</param>
725         <param name="state">An application-defined object, or <see langword="null" />.</param>
726         <summary>
727           <para>Begins an asynchronous operation to accept an incoming connection request.</para>
728         </summary>
729         <returns>
730           <para>A <see cref="T:System.IAsyncResult" /> instance that contains information about the asynchronous operation.</para>
731         </returns>
732         <remarks>
733           <para>To retrieve the results of the operation and release
734       resources allocated by the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method, call
735       the <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> method, and specify the
736    <see cref="T:System.IAsyncResult" /> object returned by this
737       method.</para>
738           <para>
739             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> method should be
740    called exactly once for each call to the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" />
741    method.</block>
742           </para>
743           <para>If the <paramref name="callback" /> parameter is not
744 <see langword="null" />, the method referenced by <paramref name="callback" /> is invoked 
745 when the asynchronous operation completes. The <see cref="T:System.IAsyncResult" /> object returned by this method is
746 passed as the argument to the method referenced by <paramref name="callback" />. The method
747 referenced by <paramref name="callback" /> can retrieve the results of the operation by calling
748 the <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" />
749 method.</para>
750           <para> The <paramref name="state" /> parameter
751 can be any object that the caller wishes to have available for the duration of
752 the asynchronous operation. This object is available via the
753 <see cref="P:System.IAsyncResult.AsyncState" /> 
754 property of the object returned by this
755 method.</para>
756           <para>To determine the connection status, check the <see cref="P:System.Net.Sockets.Socket.Connected" /> property, or use either the <see cref="M:System.Net.Sockets.Socket.Poll(System.Int32,System.Net.Sockets.SelectMode)" />
757 or <see cref="M:System.Net.Sockets.Socket.Select(System.Collections.IList,System.Collections.IList,System.Collections.IList,System.Int32)" />
758 method.</para>
759           <block subset="none" type="note">
760             <para>For more information, see <see cref="M:System.Net.Sockets.Socket.Accept" />, the
761    synchronous version of this method.</para>
762           </block>
763         </remarks>
764         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accepting the connection. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
765         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
766         <example>
767           <para> The following excerpt from the <see cref="T:System.Net.Sockets.Socket" /> class overview
768    example outlines an asynchronous accept operation. </para>
769           <code lang="C#">public class Server
770 {
771   static void Main()
772   {
773     .
774     .
775     .
776     listenSocket.BeginAccept(
777       new AsyncCallback(Server.acceptCallback),
778       listenSocket);
779     .
780     .
781     .
782     // EndAccept can be called here
783     .
784     .
785     .
786   }
787
788   public static void
789     acceptCallback(IAsyncResult asyncAccept)
790   {
791     Socket listenSocket =
792       (Socket)asyncAccept.AsyncState;
793
794     Socket serverSocket =
795       listenSocket.EndAccept(asyncAccept);
796
797     serverSocket.BeginReceive(...);
798     .
799     .
800     .
801   }
802 }
803 </code>
804         </example>
805       </Docs>
806       <Excluded>0</Excluded>
807     </Member>
808     <Member MemberName="BeginAccept">
809       <MemberSignature Language="C#" Value="public IAsyncResult BeginAccept (int receiveSize, AsyncCallback callback, object state);" />
810       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginAccept(int32 receiveSize, class System.AsyncCallback callback, object state) cil managed" />
811       <MemberType>Method</MemberType>
812       <AssemblyInfo>
813         <AssemblyVersion>2.0.0.0</AssemblyVersion>
814         <AssemblyVersion>4.0.0.0</AssemblyVersion>
815       </AssemblyInfo>
816       <ReturnValue>
817         <ReturnType>System.IAsyncResult</ReturnType>
818       </ReturnValue>
819       <Parameters>
820         <Parameter Name="receiveSize" Type="System.Int32" />
821         <Parameter Name="callback" Type="System.AsyncCallback" />
822         <Parameter Name="state" Type="System.Object" />
823       </Parameters>
824       <Docs>
825         <param name="receiveSize">To be added.</param>
826         <param name="callback">To be added.</param>
827         <param name="state">To be added.</param>
828         <summary>To be added.</summary>
829         <returns>To be added.</returns>
830         <remarks>To be added.</remarks>
831       </Docs>
832     </Member>
833     <Member MemberName="BeginAccept">
834       <MemberSignature Language="C#" Value="public IAsyncResult BeginAccept (System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);" />
835       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginAccept(class System.Net.Sockets.Socket acceptSocket, int32 receiveSize, class System.AsyncCallback callback, object state) cil managed" />
836       <MemberType>Method</MemberType>
837       <AssemblyInfo>
838         <AssemblyVersion>2.0.0.0</AssemblyVersion>
839         <AssemblyVersion>4.0.0.0</AssemblyVersion>
840       </AssemblyInfo>
841       <ReturnValue>
842         <ReturnType>System.IAsyncResult</ReturnType>
843       </ReturnValue>
844       <Parameters>
845         <Parameter Name="acceptSocket" Type="System.Net.Sockets.Socket" />
846         <Parameter Name="receiveSize" Type="System.Int32" />
847         <Parameter Name="callback" Type="System.AsyncCallback" />
848         <Parameter Name="state" Type="System.Object" />
849       </Parameters>
850       <Docs>
851         <param name="acceptSocket">To be added.</param>
852         <param name="receiveSize">To be added.</param>
853         <param name="callback">To be added.</param>
854         <param name="state">To be added.</param>
855         <summary>To be added.</summary>
856         <returns>To be added.</returns>
857         <remarks>To be added.</remarks>
858       </Docs>
859     </Member>
860     <Member MemberName="BeginConnect">
861       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(class System.Net.EndPoint remoteEP, class System.AsyncCallback callback, object state)" />
862       <MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (System.Net.EndPoint end_point, AsyncCallback callback, object state);" />
863       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(class System.Net.EndPoint end_point, class System.AsyncCallback callback, object state) cil managed" />
864       <MemberType>Method</MemberType>
865       <AssemblyInfo>
866         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
867         <AssemblyVersion>2.0.0.0</AssemblyVersion>
868         <AssemblyVersion>4.0.0.0</AssemblyVersion>
869       </AssemblyInfo>
870       <ReturnValue>
871         <ReturnType>System.IAsyncResult</ReturnType>
872       </ReturnValue>
873       <Parameters>
874         <Parameter Name="end_point" Type="System.Net.EndPoint" />
875         <Parameter Name="callback" Type="System.AsyncCallback" />
876         <Parameter Name="state" Type="System.Object" />
877       </Parameters>
878       <Docs>
879         <param name="end_point">To be added.</param>
880         <param name="callback">A <see cref="T:System.AsyncCallback" /> delegate, or <see langword="null" />.</param>
881         <param name="state">An application-defined object, or <see langword="null" />.</param>
882         <summary>
883           <para> Begins an asynchronous operation to associate the current instance with a remote endpoint.</para>
884         </summary>
885         <returns>
886           <para>A <see cref="T:System.IAsyncResult" /> instance that contains information about the asynchronous operation.</para>
887         </returns>
888         <remarks>
889           <para> To release
890       resources allocated by the <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method, call
891       the <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" /> method, and specify the
892       <see cref="T:System.IAsyncResult" /> object returned by this
893       
894       method.</para>
895           <para>
896             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" /> method should be
897    called exactly once for each call to the <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" />
898    method.</block>
899           </para>
900           <para>If the <paramref name="callback" /> parameter is not
901 <see langword="null" />, the method referenced by <paramref name="callback" /> is invoked 
902 when the asynchronous operation completes. The <see cref="T:System.IAsyncResult" /> object returned by this method is
903 passed as the argument to the method referenced by <paramref name="callback" />. The method
904 referenced by <paramref name="callback" /> can retrieve the results of the operation by calling
905 the <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" />
906 method.</para>
907           <para> The <paramref name="state" /> parameter
908 can be any object that the caller wishes to have available for the duration of
909 the asynchronous operation. This object is available via the
910 <see cref="P:System.IAsyncResult.AsyncState" /> 
911 property of the object returned by this
912 method.</para>
913           <para>To determine the connection status, check the <see cref="P:System.Net.Sockets.Socket.Connected" /> property, or use either the <see cref="M:System.Net.Sockets.Socket.Poll(System.Int32,System.Net.Sockets.SelectMode)" />
914 or <see cref="M:System.Net.Sockets.Socket.Select(System.Collections.IList,System.Collections.IList,System.Collections.IList,System.Int32)" /> method.</para>
915           <block subset="none" type="note">
916             <para>For more information, see <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" />, the
917    synchronous version of this method.</para>
918           </block>
919         </remarks>
920         <exception cref="T:System.ArgumentNullException">
921           <para>
922             <paramref name="remoteEP " />is <see langword="null" />.</para>
923         </exception>
924         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while making the connection. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
925         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
926         <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
927         <permission cref="T:System.Net.SocketPermission">Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. <block subset="none" type="note">See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</block></permission>
928         <example>
929           <para> For an outline of an asynchronous
930       operation, see the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
931       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method, see the
932       <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
933         </example>
934       </Docs>
935       <Excluded>0</Excluded>
936     </Member>
937     <Member MemberName="BeginConnect">
938       <MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback callback, object state);" />
939       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(class System.Net.IPAddress address, int32 port, class System.AsyncCallback callback, object state) cil managed" />
940       <MemberType>Method</MemberType>
941       <AssemblyInfo>
942         <AssemblyVersion>2.0.0.0</AssemblyVersion>
943         <AssemblyVersion>4.0.0.0</AssemblyVersion>
944       </AssemblyInfo>
945       <ReturnValue>
946         <ReturnType>System.IAsyncResult</ReturnType>
947       </ReturnValue>
948       <Parameters>
949         <Parameter Name="address" Type="System.Net.IPAddress" />
950         <Parameter Name="port" Type="System.Int32" />
951         <Parameter Name="callback" Type="System.AsyncCallback" />
952         <Parameter Name="state" Type="System.Object" />
953       </Parameters>
954       <Docs>
955         <param name="address">To be added.</param>
956         <param name="port">To be added.</param>
957         <param name="callback">To be added.</param>
958         <param name="state">To be added.</param>
959         <summary>To be added.</summary>
960         <returns>To be added.</returns>
961         <remarks>To be added.</remarks>
962       </Docs>
963     </Member>
964     <Member MemberName="BeginConnect">
965       <MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback callback, object state);" />
966       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(class System.Net.IPAddress[] addresses, int32 port, class System.AsyncCallback callback, object state) cil managed" />
967       <MemberType>Method</MemberType>
968       <AssemblyInfo>
969         <AssemblyVersion>2.0.0.0</AssemblyVersion>
970         <AssemblyVersion>4.0.0.0</AssemblyVersion>
971       </AssemblyInfo>
972       <ReturnValue>
973         <ReturnType>System.IAsyncResult</ReturnType>
974       </ReturnValue>
975       <Parameters>
976         <Parameter Name="addresses" Type="System.Net.IPAddress[]" />
977         <Parameter Name="port" Type="System.Int32" />
978         <Parameter Name="callback" Type="System.AsyncCallback" />
979         <Parameter Name="state" Type="System.Object" />
980       </Parameters>
981       <Docs>
982         <param name="addresses">To be added.</param>
983         <param name="port">To be added.</param>
984         <param name="callback">To be added.</param>
985         <param name="state">To be added.</param>
986         <summary>To be added.</summary>
987         <returns>To be added.</returns>
988         <remarks>To be added.</remarks>
989       </Docs>
990     </Member>
991     <Member MemberName="BeginConnect">
992       <MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (string host, int port, AsyncCallback callback, object state);" />
993       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(string host, int32 port, class System.AsyncCallback callback, object state) cil managed" />
994       <MemberType>Method</MemberType>
995       <AssemblyInfo>
996         <AssemblyVersion>2.0.0.0</AssemblyVersion>
997         <AssemblyVersion>4.0.0.0</AssemblyVersion>
998       </AssemblyInfo>
999       <ReturnValue>
1000         <ReturnType>System.IAsyncResult</ReturnType>
1001       </ReturnValue>
1002       <Parameters>
1003         <Parameter Name="host" Type="System.String" />
1004         <Parameter Name="port" Type="System.Int32" />
1005         <Parameter Name="callback" Type="System.AsyncCallback" />
1006         <Parameter Name="state" Type="System.Object" />
1007       </Parameters>
1008       <Docs>
1009         <param name="host">To be added.</param>
1010         <param name="port">To be added.</param>
1011         <param name="callback">To be added.</param>
1012         <param name="state">To be added.</param>
1013         <summary>To be added.</summary>
1014         <returns>To be added.</returns>
1015         <remarks>To be added.</remarks>
1016       </Docs>
1017     </Member>
1018     <Member MemberName="BeginDisconnect">
1019       <MemberSignature Language="C#" Value="public IAsyncResult BeginDisconnect (bool reuseSocket, AsyncCallback callback, object state);" />
1020       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginDisconnect(bool reuseSocket, class System.AsyncCallback callback, object state) cil managed" />
1021       <MemberType>Method</MemberType>
1022       <AssemblyInfo>
1023         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1024         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1025       </AssemblyInfo>
1026       <ReturnValue>
1027         <ReturnType>System.IAsyncResult</ReturnType>
1028       </ReturnValue>
1029       <Parameters>
1030         <Parameter Name="reuseSocket" Type="System.Boolean" />
1031         <Parameter Name="callback" Type="System.AsyncCallback" />
1032         <Parameter Name="state" Type="System.Object" />
1033       </Parameters>
1034       <Docs>
1035         <param name="reuseSocket">To be added.</param>
1036         <param name="callback">To be added.</param>
1037         <param name="state">To be added.</param>
1038         <summary>To be added.</summary>
1039         <returns>To be added.</returns>
1040         <remarks>To be added.</remarks>
1041       </Docs>
1042     </Member>
1043     <Member MemberName="BeginReceive">
1044       <MemberSignature Language="C#" Value="public IAsyncResult BeginReceive (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);" />
1045       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginReceive(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.AsyncCallback callback, object state) cil managed" />
1046       <MemberType>Method</MemberType>
1047       <AssemblyInfo>
1048         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1049         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1050       </AssemblyInfo>
1051       <Attributes>
1052         <Attribute>
1053           <AttributeName>System.CLSCompliant(false)</AttributeName>
1054         </Attribute>
1055       </Attributes>
1056       <ReturnValue>
1057         <ReturnType>System.IAsyncResult</ReturnType>
1058       </ReturnValue>
1059       <Parameters>
1060         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
1061         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
1062         <Parameter Name="callback" Type="System.AsyncCallback" />
1063         <Parameter Name="state" Type="System.Object" />
1064       </Parameters>
1065       <Docs>
1066         <param name="buffers">To be added.</param>
1067         <param name="socketFlags">To be added.</param>
1068         <param name="callback">To be added.</param>
1069         <param name="state">To be added.</param>
1070         <summary>To be added.</summary>
1071         <returns>To be added.</returns>
1072         <remarks>To be added.</remarks>
1073       </Docs>
1074     </Member>
1075     <Member MemberName="BeginReceive">
1076       <MemberSignature Language="C#" Value="public IAsyncResult BeginReceive (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);" />
1077       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginReceive(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags, valuetype System.Net.Sockets.SocketError errorCode, class System.AsyncCallback callback, object state) cil managed" />
1078       <MemberType>Method</MemberType>
1079       <AssemblyInfo>
1080         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1081         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1082       </AssemblyInfo>
1083       <Attributes>
1084         <Attribute>
1085           <AttributeName>System.CLSCompliant(false)</AttributeName>
1086         </Attribute>
1087       </Attributes>
1088       <ReturnValue>
1089         <ReturnType>System.IAsyncResult</ReturnType>
1090       </ReturnValue>
1091       <Parameters>
1092         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
1093         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
1094         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
1095         <Parameter Name="callback" Type="System.AsyncCallback" />
1096         <Parameter Name="state" Type="System.Object" />
1097       </Parameters>
1098       <Docs>
1099         <param name="buffers">To be added.</param>
1100         <param name="socketFlags">To be added.</param>
1101         <param name="errorCode">To be added.</param>
1102         <param name="callback">To be added.</param>
1103         <param name="state">To be added.</param>
1104         <summary>To be added.</summary>
1105         <returns>To be added.</returns>
1106         <remarks>To be added.</remarks>
1107       </Docs>
1108     </Member>
1109     <Member MemberName="BeginReceive">
1110       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.IAsyncResult BeginReceive(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.AsyncCallback callback, object state)" />
1111       <MemberSignature Language="C#" Value="public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, AsyncCallback callback, object state);" />
1112       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginReceive(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socket_flags, class System.AsyncCallback callback, object state) cil managed" />
1113       <MemberType>Method</MemberType>
1114       <AssemblyInfo>
1115         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1116         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1117         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1118       </AssemblyInfo>
1119       <ReturnValue>
1120         <ReturnType>System.IAsyncResult</ReturnType>
1121       </ReturnValue>
1122       <Parameters>
1123         <Parameter Name="buffer" Type="System.Byte[]" />
1124         <Parameter Name="offset" Type="System.Int32" />
1125         <Parameter Name="size" Type="System.Int32" />
1126         <Parameter Name="socket_flags" Type="System.Net.Sockets.SocketFlags" />
1127         <Parameter Name="callback" Type="System.AsyncCallback" />
1128         <Parameter Name="state" Type="System.Object" />
1129       </Parameters>
1130       <Docs>
1131         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array to store data received from the socket.</param>
1132         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> containing the zero-based position in <paramref name="buffer " />to begin storing the received data.</param>
1133         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to receive.</param>
1134         <param name="socket_flags">To be added.</param>
1135         <param name="callback">A <see cref="T:System.AsyncCallback" /> delegate, or <see langword="null" />.</param>
1136         <param name="state">An application-defined object, or <see langword="null" />.</param>
1137         <summary>
1138           <para> Begins an asynchronous operation to receive data from a socket.</para>
1139         </summary>
1140         <returns>
1141           <para>A <see cref="T:System.IAsyncResult" /> instance that contains information about the asynchronous operation.</para>
1142         </returns>
1143         <remarks>
1144           <para>To retrieve the results of the operation and release
1145       resources allocated by the <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method, call
1146       the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> method, and specify the
1147    <see cref="T:System.IAsyncResult" /> object returned by this
1148       
1149       method.</para>
1150           <para>
1151             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> method should be
1152    called exactly once for each call to the <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" />
1153    method.</block>
1154           </para>
1155           <para>If the <paramref name="callback" /> parameter is not
1156 <see langword="null" />, the method referenced by <paramref name="callback" /> is invoked 
1157 when the asynchronous operation completes. The <see cref="T:System.IAsyncResult" /> object returned by this method is
1158 passed as the argument to the method referenced by <paramref name="callback" />. The method
1159 referenced by <paramref name="callback" /> can retrieve the results of the operation by calling
1160 the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" />
1161 method.</para>
1162           <para> The <paramref name="state" /> parameter
1163 can be any object that the caller wishes to have available for the duration of
1164 the asynchronous operation. This object is available via the
1165 <see cref="P:System.IAsyncResult.AsyncState" /> 
1166 property of the object returned by this
1167 method.</para>
1168           <block subset="none" type="note">
1169             <para>For more information, see <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />, the
1170    synchronous version of this method.</para>
1171           </block>
1172         </remarks>
1173         <exception cref="T:System.ArgumentNullException">
1174           <paramref name="buffer " />is <see langword="null" />.</exception>
1175         <exception cref="T:System.ArgumentOutOfRangeException">
1176           <para>
1177             <paramref name="offset" /> &lt; 0. </para>
1178           <para>-or-</para>
1179           <para>
1180             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
1181           <para> -or-</para>
1182           <para>
1183             <paramref name="size" /> &lt; 0.</para>
1184           <para>-or-</para>
1185           <para>
1186             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
1187         </exception>
1188         <exception cref="T:System.Net.Sockets.SocketException">
1189           <para>
1190             <paramref name="socketFlags" /> is not a valid combination of values.</para>
1191           <para>-or-</para>
1192           <para>An error occurred while accessing the socket. </para>
1193           <para>
1194             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
1195           </para>
1196         </exception>
1197         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1198         <example>
1199           <para>For an outline of an asynchronous operation, see
1200       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
1201       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
1202         </example>
1203       </Docs>
1204       <Excluded>0</Excluded>
1205     </Member>
1206     <Member MemberName="BeginReceive">
1207       <MemberSignature Language="C#" Value="public IAsyncResult BeginReceive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error, AsyncCallback callback, object state);" />
1208       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginReceive(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags, valuetype System.Net.Sockets.SocketError error, class System.AsyncCallback callback, object state) cil managed" />
1209       <MemberType>Method</MemberType>
1210       <AssemblyInfo>
1211         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1212         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1213       </AssemblyInfo>
1214       <ReturnValue>
1215         <ReturnType>System.IAsyncResult</ReturnType>
1216       </ReturnValue>
1217       <Parameters>
1218         <Parameter Name="buffer" Type="System.Byte[]" />
1219         <Parameter Name="offset" Type="System.Int32" />
1220         <Parameter Name="size" Type="System.Int32" />
1221         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
1222         <Parameter Name="error" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
1223         <Parameter Name="callback" Type="System.AsyncCallback" />
1224         <Parameter Name="state" Type="System.Object" />
1225       </Parameters>
1226       <Docs>
1227         <param name="buffer">To be added.</param>
1228         <param name="offset">To be added.</param>
1229         <param name="size">To be added.</param>
1230         <param name="flags">To be added.</param>
1231         <param name="error">To be added.</param>
1232         <param name="callback">To be added.</param>
1233         <param name="state">To be added.</param>
1234         <summary>To be added.</summary>
1235         <returns>To be added.</returns>
1236         <remarks>To be added.</remarks>
1237       </Docs>
1238     </Member>
1239     <Member MemberName="BeginReceiveFrom">
1240       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.IAsyncResult BeginReceiveFrom(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint&amp; remoteEP, class System.AsyncCallback callback, object state)" />
1241       <MemberSignature Language="C#" Value="public IAsyncResult BeginReceiveFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, ref System.Net.EndPoint remote_end, AsyncCallback callback, object state);" />
1242       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginReceiveFrom(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socket_flags, class System.Net.EndPoint remote_end, class System.AsyncCallback callback, object state) cil managed" />
1243       <MemberType>Method</MemberType>
1244       <AssemblyInfo>
1245         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1246         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1247         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1248       </AssemblyInfo>
1249       <ReturnValue>
1250         <ReturnType>System.IAsyncResult</ReturnType>
1251       </ReturnValue>
1252       <Parameters>
1253         <Parameter Name="buffer" Type="System.Byte[]" />
1254         <Parameter Name="offset" Type="System.Int32" />
1255         <Parameter Name="size" Type="System.Int32" />
1256         <Parameter Name="socket_flags" Type="System.Net.Sockets.SocketFlags" />
1257         <Parameter Name="remote_end" Type="System.Net.EndPoint&amp;" RefType="ref" />
1258         <Parameter Name="callback" Type="System.AsyncCallback" />
1259         <Parameter Name="state" Type="System.Object" />
1260       </Parameters>
1261       <Docs>
1262         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array to store data received from the socket.</param>
1263         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> containing the zero-based position in <paramref name="buffer " />to begin storing the received data.</param>
1264         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to receive.</param>
1265         <param name="socket_flags">To be added.</param>
1266         <param name="remote_end">To be added.</param>
1267         <param name="callback">A <see cref="T:System.AsyncCallback" /> delegate, or <see langword="null" />.</param>
1268         <param name="state">An application-defined object, or <see langword="null" />.</param>
1269         <summary>
1270           <para> Begins an asynchronous operation to receive data from a socket and,
1271       for connectionless protocols, store the endpoint associated with the socket that
1272       sent the data.</para>
1273         </summary>
1274         <returns>
1275           <para>A <see cref="T:System.IAsyncResult" /> instance that contains information about the asynchronous operation.</para>
1276         </returns>
1277         <remarks>
1278           <para>To retrieve the results of the operation and release
1279       resources allocated by the <see cref="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" /> method, call
1280       the <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" /> method, and specify the
1281    <see cref="T:System.IAsyncResult" /> object returned by this
1282       
1283       method.</para>
1284           <para>
1285             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" /> method should be
1286    called exactly once for each call to the <see cref="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" />
1287    method.</block>
1288           </para>
1289           <para>If the <paramref name="callback" /> parameter is not
1290 <see langword="null" />, the method referenced by <paramref name="callback" /> is invoked 
1291 when the asynchronous operation completes. The <see cref="T:System.IAsyncResult" /> object returned by this method is
1292 passed as the argument to the method referenced by <paramref name="callback" />. The method
1293 referenced by <paramref name="callback" /> can retrieve the results of the operation by calling
1294 the <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" />
1295 method.</para>
1296           <para> The <paramref name="state" /> parameter
1297 can be any object that the caller wishes to have available for the duration of
1298 the asynchronous operation. This object is available via the
1299 <see cref="P:System.IAsyncResult.AsyncState" /> 
1300 property of the object returned by this
1301 method.</para>
1302           <block subset="none" type="note">
1303             <para>For more information, see <see cref="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)" />, the
1304    synchronous version of this method.</para>
1305           </block>
1306         </remarks>
1307         <exception cref="T:System.ArgumentNullException">
1308           <para>
1309             <paramref name="buffer " />is <see langword="null" />.</para>
1310           <para>-or-</para>
1311           <para>
1312             <paramref name="remoteEP " />is <see langword="null" />.</para>
1313         </exception>
1314         <exception cref="T:System.ArgumentOutOfRangeException">
1315           <para>
1316             <paramref name="offset" /> &lt; 0. </para>
1317           <para>-or-</para>
1318           <para>
1319             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
1320           <para> -or-</para>
1321           <para>
1322             <paramref name="size" /> &lt; 0.</para>
1323           <para>-or-</para>
1324           <para>
1325             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
1326         </exception>
1327         <exception cref="T:System.Net.Sockets.SocketException">
1328           <para>
1329             <paramref name="socketFlags" /> is not a valid combination of values.</para>
1330           <para>-or-</para>
1331           <para>An error occurred while accessing the socket. </para>
1332           <para>
1333             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
1334           </para>
1335         </exception>
1336         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1337         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
1338         <permission cref="T:System.Net.SocketPermission">
1339           <para>Requires permission to accept a connection on the endpoint defined by the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property of the current instance. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</para>
1340           <para>Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</para>
1341         </permission>
1342         <example>
1343           <para>For an outline of an asynchronous operation, see
1344       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
1345       For the complete example, see <see cref="T:System.Net.Sockets.Socket" />.</para>
1346         </example>
1347       </Docs>
1348       <Excluded>0</Excluded>
1349     </Member>
1350     <Member MemberName="BeginReceiveMessageFrom">
1351       <MemberSignature Language="C#" Value="public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);" />
1352       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginReceiveMessageFrom(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint remoteEP, class System.AsyncCallback callback, object state) cil managed" />
1353       <MemberType>Method</MemberType>
1354       <AssemblyInfo>
1355         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1356         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1357       </AssemblyInfo>
1358       <Attributes>
1359         <Attribute>
1360           <AttributeName>System.MonoTODO</AttributeName>
1361         </Attribute>
1362       </Attributes>
1363       <ReturnValue>
1364         <ReturnType>System.IAsyncResult</ReturnType>
1365       </ReturnValue>
1366       <Parameters>
1367         <Parameter Name="buffer" Type="System.Byte[]" />
1368         <Parameter Name="offset" Type="System.Int32" />
1369         <Parameter Name="size" Type="System.Int32" />
1370         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
1371         <Parameter Name="remoteEP" Type="System.Net.EndPoint&amp;" RefType="ref" />
1372         <Parameter Name="callback" Type="System.AsyncCallback" />
1373         <Parameter Name="state" Type="System.Object" />
1374       </Parameters>
1375       <Docs>
1376         <param name="buffer">To be added.</param>
1377         <param name="offset">To be added.</param>
1378         <param name="size">To be added.</param>
1379         <param name="socketFlags">To be added.</param>
1380         <param name="remoteEP">To be added.</param>
1381         <param name="callback">To be added.</param>
1382         <param name="state">To be added.</param>
1383         <summary>To be added.</summary>
1384         <returns>To be added.</returns>
1385         <remarks>To be added.</remarks>
1386       </Docs>
1387     </Member>
1388     <Member MemberName="BeginSend">
1389       <MemberSignature Language="C#" Value="public IAsyncResult BeginSend (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);" />
1390       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSend(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.AsyncCallback callback, object state) cil managed" />
1391       <MemberType>Method</MemberType>
1392       <AssemblyInfo>
1393         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1394         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1395       </AssemblyInfo>
1396       <ReturnValue>
1397         <ReturnType>System.IAsyncResult</ReturnType>
1398       </ReturnValue>
1399       <Parameters>
1400         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
1401         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
1402         <Parameter Name="callback" Type="System.AsyncCallback" />
1403         <Parameter Name="state" Type="System.Object" />
1404       </Parameters>
1405       <Docs>
1406         <param name="buffers">To be added.</param>
1407         <param name="socketFlags">To be added.</param>
1408         <param name="callback">To be added.</param>
1409         <param name="state">To be added.</param>
1410         <summary>To be added.</summary>
1411         <returns>To be added.</returns>
1412         <remarks>To be added.</remarks>
1413       </Docs>
1414     </Member>
1415     <Member MemberName="BeginSend">
1416       <MemberSignature Language="C#" Value="public IAsyncResult BeginSend (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);" />
1417       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSend(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags, valuetype System.Net.Sockets.SocketError errorCode, class System.AsyncCallback callback, object state) cil managed" />
1418       <MemberType>Method</MemberType>
1419       <AssemblyInfo>
1420         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1421         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1422       </AssemblyInfo>
1423       <Attributes>
1424         <Attribute>
1425           <AttributeName>System.CLSCompliant(false)</AttributeName>
1426         </Attribute>
1427       </Attributes>
1428       <ReturnValue>
1429         <ReturnType>System.IAsyncResult</ReturnType>
1430       </ReturnValue>
1431       <Parameters>
1432         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
1433         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
1434         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
1435         <Parameter Name="callback" Type="System.AsyncCallback" />
1436         <Parameter Name="state" Type="System.Object" />
1437       </Parameters>
1438       <Docs>
1439         <param name="buffers">To be added.</param>
1440         <param name="socketFlags">To be added.</param>
1441         <param name="errorCode">To be added.</param>
1442         <param name="callback">To be added.</param>
1443         <param name="state">To be added.</param>
1444         <summary>To be added.</summary>
1445         <returns>To be added.</returns>
1446         <remarks>To be added.</remarks>
1447       </Docs>
1448     </Member>
1449     <Member MemberName="BeginSend">
1450       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.IAsyncResult BeginSend(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.AsyncCallback callback, object state)" />
1451       <MemberSignature Language="C#" Value="public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, AsyncCallback callback, object state);" />
1452       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSend(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socket_flags, class System.AsyncCallback callback, object state) cil managed" />
1453       <MemberType>Method</MemberType>
1454       <AssemblyInfo>
1455         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1456         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1457         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1458       </AssemblyInfo>
1459       <ReturnValue>
1460         <ReturnType>System.IAsyncResult</ReturnType>
1461       </ReturnValue>
1462       <Parameters>
1463         <Parameter Name="buffer" Type="System.Byte[]" />
1464         <Parameter Name="offset" Type="System.Int32" />
1465         <Parameter Name="size" Type="System.Int32" />
1466         <Parameter Name="socket_flags" Type="System.Net.Sockets.SocketFlags" />
1467         <Parameter Name="callback" Type="System.AsyncCallback" />
1468         <Parameter Name="state" Type="System.Object" />
1469       </Parameters>
1470       <Docs>
1471         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array storing data to send to the socket.</param>
1472         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> containing the zero-based position in <paramref name="buffer" /> containing the starting location of the data to send.</param>
1473         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to send.</param>
1474         <param name="socket_flags">To be added.</param>
1475         <param name="callback">A <see cref="T:System.AsyncCallback" /> delegate, or <see langword="null" />.</param>
1476         <param name="state">An application-defined object, or <see langword="null" />.</param>
1477         <summary>
1478           <para>Begins an asynchronous operation to send data to a connected socket.</para>
1479         </summary>
1480         <returns>
1481           <para>A <see cref="T:System.IAsyncResult" /> instance that contains information about the asynchronous operation.</para>
1482         </returns>
1483         <remarks>
1484           <para>To retrieve the results of the operation and release
1485       resources allocated by the <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method, call
1486       the <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> method, and specify the
1487    <see cref="T:System.IAsyncResult" /> object returned by
1488       this
1489       
1490       method.</para>
1491           <para>
1492             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> method should be
1493    called exactly once for each call to the <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" />
1494    method.</block>
1495           </para>
1496           <para>If the <paramref name="callback" /> parameter is not
1497 <see langword="null" />, the method referenced by <paramref name="callback" /> is invoked 
1498 when the asynchronous operation completes. The <see cref="T:System.IAsyncResult" /> object returned by this method is
1499 passed as the argument to the method referenced by <paramref name="callback" />. The method
1500 referenced by <paramref name="callback" /> can retrieve the results of the operation by calling
1501 the <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" />
1502 method.</para>
1503           <para> The <paramref name="state" /> parameter
1504 can be any object that the caller wishes to have available for the duration of
1505 the asynchronous operation. This object is available via the
1506 <see cref="P:System.IAsyncResult.AsyncState" /> 
1507 property of the object returned by this
1508 method.</para>
1509           <block subset="none" type="note">
1510             <para>For more information, see <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />, the
1511    synchronous version of this method.</para>
1512           </block>
1513         </remarks>
1514         <exception cref="T:System.ArgumentNullException">
1515           <paramref name="buffer " />is <see langword="null" />.</exception>
1516         <exception cref="T:System.ArgumentOutOfRangeException">
1517           <para>
1518             <paramref name="offset" /> &lt; 0. </para>
1519           <para>-or- </para>
1520           <para>
1521             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
1522           <para> -or-</para>
1523           <para>
1524             <paramref name="size" /> &lt; 0.</para>
1525           <para>-or-</para>
1526           <para>
1527             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
1528         </exception>
1529         <exception cref="T:System.Net.Sockets.SocketException">
1530           <para>
1531             <paramref name="socketFlags" /> is not a valid combination of values.</para>
1532           <para>-or-</para>
1533           <para>An error occurred while accessing the socket. </para>
1534           <para>
1535             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
1536           </para>
1537         </exception>
1538         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1539         <example>
1540           <para>For an outline of an asynchronous operation, see
1541       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
1542       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
1543         </example>
1544       </Docs>
1545       <Excluded>0</Excluded>
1546     </Member>
1547     <Member MemberName="BeginSend">
1548       <MemberSignature Language="C#" Value="public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);" />
1549       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSend(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, valuetype System.Net.Sockets.SocketError errorCode, class System.AsyncCallback callback, object state) cil managed" />
1550       <MemberType>Method</MemberType>
1551       <AssemblyInfo>
1552         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1553         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1554       </AssemblyInfo>
1555       <ReturnValue>
1556         <ReturnType>System.IAsyncResult</ReturnType>
1557       </ReturnValue>
1558       <Parameters>
1559         <Parameter Name="buffer" Type="System.Byte[]" />
1560         <Parameter Name="offset" Type="System.Int32" />
1561         <Parameter Name="size" Type="System.Int32" />
1562         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
1563         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
1564         <Parameter Name="callback" Type="System.AsyncCallback" />
1565         <Parameter Name="state" Type="System.Object" />
1566       </Parameters>
1567       <Docs>
1568         <param name="buffer">To be added.</param>
1569         <param name="offset">To be added.</param>
1570         <param name="size">To be added.</param>
1571         <param name="socketFlags">To be added.</param>
1572         <param name="errorCode">To be added.</param>
1573         <param name="callback">To be added.</param>
1574         <param name="state">To be added.</param>
1575         <summary>To be added.</summary>
1576         <returns>To be added.</returns>
1577         <remarks>To be added.</remarks>
1578       </Docs>
1579     </Member>
1580     <Member MemberName="BeginSendFile">
1581       <MemberSignature Language="C#" Value="public IAsyncResult BeginSendFile (string fileName, AsyncCallback callback, object state);" />
1582       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSendFile(string fileName, class System.AsyncCallback callback, object state) cil managed" />
1583       <MemberType>Method</MemberType>
1584       <AssemblyInfo>
1585         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1586         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1587       </AssemblyInfo>
1588       <ReturnValue>
1589         <ReturnType>System.IAsyncResult</ReturnType>
1590       </ReturnValue>
1591       <Parameters>
1592         <Parameter Name="fileName" Type="System.String" />
1593         <Parameter Name="callback" Type="System.AsyncCallback" />
1594         <Parameter Name="state" Type="System.Object" />
1595       </Parameters>
1596       <Docs>
1597         <param name="fileName">To be added.</param>
1598         <param name="callback">To be added.</param>
1599         <param name="state">To be added.</param>
1600         <summary>To be added.</summary>
1601         <returns>To be added.</returns>
1602         <remarks>To be added.</remarks>
1603       </Docs>
1604     </Member>
1605     <Member MemberName="BeginSendFile">
1606       <MemberSignature Language="C#" Value="public IAsyncResult BeginSendFile (string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags, AsyncCallback callback, object state);" />
1607       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSendFile(string fileName, unsigned int8[] preBuffer, unsigned int8[] postBuffer, valuetype System.Net.Sockets.TransmitFileOptions flags, class System.AsyncCallback callback, object state) cil managed" />
1608       <MemberType>Method</MemberType>
1609       <AssemblyInfo>
1610         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1611         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1612       </AssemblyInfo>
1613       <ReturnValue>
1614         <ReturnType>System.IAsyncResult</ReturnType>
1615       </ReturnValue>
1616       <Parameters>
1617         <Parameter Name="fileName" Type="System.String" />
1618         <Parameter Name="preBuffer" Type="System.Byte[]" />
1619         <Parameter Name="postBuffer" Type="System.Byte[]" />
1620         <Parameter Name="flags" Type="System.Net.Sockets.TransmitFileOptions" />
1621         <Parameter Name="callback" Type="System.AsyncCallback" />
1622         <Parameter Name="state" Type="System.Object" />
1623       </Parameters>
1624       <Docs>
1625         <param name="fileName">To be added.</param>
1626         <param name="preBuffer">To be added.</param>
1627         <param name="postBuffer">To be added.</param>
1628         <param name="flags">To be added.</param>
1629         <param name="callback">To be added.</param>
1630         <param name="state">To be added.</param>
1631         <summary>To be added.</summary>
1632         <returns>To be added.</returns>
1633         <remarks>To be added.</remarks>
1634       </Docs>
1635     </Member>
1636     <Member MemberName="BeginSendTo">
1637       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.IAsyncResult BeginSendTo(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint remoteEP, class System.AsyncCallback callback, object state)" />
1638       <MemberSignature Language="C#" Value="public IAsyncResult BeginSendTo (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socket_flags, System.Net.EndPoint remote_end, AsyncCallback callback, object state);" />
1639       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginSendTo(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socket_flags, class System.Net.EndPoint remote_end, class System.AsyncCallback callback, object state) cil managed" />
1640       <MemberType>Method</MemberType>
1641       <AssemblyInfo>
1642         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1643         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1644         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1645       </AssemblyInfo>
1646       <ReturnValue>
1647         <ReturnType>System.IAsyncResult</ReturnType>
1648       </ReturnValue>
1649       <Parameters>
1650         <Parameter Name="buffer" Type="System.Byte[]" />
1651         <Parameter Name="offset" Type="System.Int32" />
1652         <Parameter Name="size" Type="System.Int32" />
1653         <Parameter Name="socket_flags" Type="System.Net.Sockets.SocketFlags" />
1654         <Parameter Name="remote_end" Type="System.Net.EndPoint" />
1655         <Parameter Name="callback" Type="System.AsyncCallback" />
1656         <Parameter Name="state" Type="System.Object" />
1657       </Parameters>
1658       <Docs>
1659         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array storing data to send to the socket.</param>
1660         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> containing the zero-based position in <paramref name="buffer" /> to begin sending data.</param>
1661         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to send.</param>
1662         <param name="socket_flags">To be added.</param>
1663         <param name="remote_end">To be added.</param>
1664         <param name="callback">A <see cref="T:System.AsyncCallback" /> delegate, or <see langword="null" />.</param>
1665         <param name="state">An application-defined object, or <see langword="null" />.</param>
1666         <summary>
1667           <para> Begins an asynchronous operation to send data to the socket associated with the specified endpoint.</para>
1668         </summary>
1669         <returns>
1670           <para>A <see cref="T:System.IAsyncResult" /> instance that contains information about the asynchronous operation.</para>
1671         </returns>
1672         <remarks>
1673           <para>To retrieve the results of the operation and release
1674       resources allocated by the <see cref="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method, call
1675       the <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" /> method, and specify the
1676    <see cref="T:System.IAsyncResult" /> object returned by this
1677       
1678       method.</para>
1679           <para>
1680             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" /> method should be
1681    called exactly once for each call to the <see cref="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)" />
1682    method.</block>
1683           </para>
1684           <para>If the <paramref name="callback" /> parameter is not
1685 <see langword="null" />, the method referenced by <paramref name="callback" /> is invoked 
1686 when the asynchronous operation completes. The <see cref="T:System.IAsyncResult" /> object returned by this method is
1687 passed as the argument to the method referenced by <paramref name="callback" />. The method
1688 referenced by <paramref name="callback" /> can retrieve the results of the operation by calling
1689 the <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" />
1690 method.</para>
1691           <para> The <paramref name="state" /> parameter
1692 can be any object that the caller wishes to have available for the duration of
1693 the asynchronous operation. This object is available via the
1694 <see cref="P:System.IAsyncResult.AsyncState" /> 
1695 property of the object returned by this
1696 method.</para>
1697           <block subset="none" type="note">
1698             <para>For more information, see <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />, the
1699    synchronous version of this method.</para>
1700           </block>
1701         </remarks>
1702         <exception cref="T:System.ArgumentNullException">
1703           <para>
1704             <paramref name="buffer " />is <see langword="null" />.</para>
1705           <para>-or-</para>
1706           <para>
1707             <paramref name="remoteEP " />is <see langword="null" />.</para>
1708         </exception>
1709         <exception cref="T:System.ArgumentOutOfRangeException">
1710           <para>
1711             <paramref name="offset" /> &lt; 0. </para>
1712           <para>-or-</para>
1713           <para>
1714             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
1715           <para> -or-</para>
1716           <para>
1717             <paramref name="size" /> &lt; 0.</para>
1718           <para>-or-</para>
1719           <para>
1720             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
1721         </exception>
1722         <exception cref="T:System.Net.Sockets.SocketException">
1723           <para>
1724             <paramref name="socketFlags" /> is not a valid combination of values.</para>
1725           <para>-or-</para>
1726           <para>An error occurred while accessing the socket. </para>
1727           <para>
1728             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
1729           </para>
1730         </exception>
1731         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1732         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
1733         <permission cref="T:System.Net.SocketPermission">
1734           <para>Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</para>
1735         </permission>
1736         <example>
1737           <para>For an outline of an asynchronous operation, see
1738       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
1739       For
1740       the complete example, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
1741         </example>
1742       </Docs>
1743       <Excluded>0</Excluded>
1744     </Member>
1745     <Member MemberName="Bind">
1746       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void Bind(class System.Net.EndPoint localEP)" />
1747       <MemberSignature Language="C#" Value="public void Bind (System.Net.EndPoint local_end);" />
1748       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Bind(class System.Net.EndPoint local_end) cil managed" />
1749       <MemberType>Method</MemberType>
1750       <AssemblyInfo>
1751         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1752         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1753         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1754       </AssemblyInfo>
1755       <ReturnValue>
1756         <ReturnType>System.Void</ReturnType>
1757       </ReturnValue>
1758       <Parameters>
1759         <Parameter Name="local_end" Type="System.Net.EndPoint" />
1760       </Parameters>
1761       <Docs>
1762         <param name="local_end">
1763           <para>The local <see cref="T:System.Net.EndPoint" qualify="true" /> to be associated with the socket.</para>
1764         </param>
1765         <summary>
1766           <para>Associates the current instance with a local endpoint.</para>
1767         </summary>
1768         <remarks>
1769           <para>This method sets the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property of the current instance to
1770 <paramref name="localEP" />.</para>
1771           <block subset="none" type="note">
1772             <para>For connection-oriented protocols, this method is
1773       generally used only on the server-side and is required to be called before the first
1774       call to the <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> method.
1775       On the client-side, binding is usually performed implicitly by the <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> method. </para>
1776             <para>For connectionless protocols, the <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /><see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />, and <see cref="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)" /> methods bind the current instance to
1777 the local endpoint if the current instance has not previously been bound. </para>
1778           </block>
1779         </remarks>
1780         <exception cref="T:System.ArgumentNullException">
1781           <paramref name="localEP " />is <see langword="null" />.</exception>
1782         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
1783         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1784         <exception cref="T:System.Security.SecurityException"> A caller in the call stack does not have the required permission.</exception>
1785         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections on the endpoint defined by <paramref name="localEP" />. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</permission>
1786       </Docs>
1787       <Excluded>0</Excluded>
1788     </Member>
1789     <Member MemberName="Blocking">
1790       <MemberSignature Language="ILASM" Value=".property bool Blocking { public hidebysig specialname instance bool get_Blocking() public hidebysig specialname instance void set_Blocking(bool value) }" />
1791       <MemberSignature Language="C#" Value="public bool Blocking { get; set; }" />
1792       <MemberSignature Language="ILAsm" Value=".property instance bool Blocking" />
1793       <MemberType>Property</MemberType>
1794       <AssemblyInfo>
1795         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1796         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1797         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1798       </AssemblyInfo>
1799       <ReturnValue>
1800         <ReturnType>System.Boolean</ReturnType>
1801       </ReturnValue>
1802       <Parameters />
1803       <Docs>
1804         <summary>
1805           <para> Gets or sets a <see cref="T:System.Boolean" qualify="true" /> value that indicates whether the socket is in blocking mode.
1806    </para>
1807         </summary>
1808         <value>
1809           <para>
1810             <see langword="true" /> indicates that
1811    the current instance is in blocking mode;
1812 <see langword="false" /> indicates that the current instance is in 
1813    non-blocking mode. </para>
1814         </value>
1815         <remarks>
1816           <para> Blocking is when a method waits to complete an operation before returning. Sockets are created in blocking mode
1817       by default. </para>
1818         </remarks>
1819         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1820       </Docs>
1821       <Excluded>0</Excluded>
1822     </Member>
1823     <Member MemberName="Close">
1824       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void Close()" />
1825       <MemberSignature Language="C#" Value="public void Close ();" />
1826       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Close() cil managed" />
1827       <MemberType>Method</MemberType>
1828       <AssemblyInfo>
1829         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1830         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1831         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1832       </AssemblyInfo>
1833       <ReturnValue>
1834         <ReturnType>System.Void</ReturnType>
1835       </ReturnValue>
1836       <Parameters />
1837       <Docs>
1838         <summary>
1839           <para> Closes the current instance and releases all managed and unmanaged resources allocated by the current instance.
1840       </para>
1841         </summary>
1842         <remarks>
1843           <para> This method calls the
1844    <see cref="M:System.Net.Sockets.Socket.Dispose(System.Boolean)" />(<see cref="T:System.Boolean" />)
1845       method with the argument set to <see langword="true" />, which frees both managed
1846       and unmanaged resources used by the current instance. </para>
1847           <para>The socket attempts to perform a graceful closure when the <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> socket option is enabled
1848    and set to a non-zero linger time. In all other cases, closure is forced and any
1849    pending data is lost.</para>
1850         </remarks>
1851       </Docs>
1852       <Excluded>0</Excluded>
1853     </Member>
1854     <Member MemberName="Close">
1855       <MemberSignature Language="C#" Value="public void Close (int timeout);" />
1856       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Close(int32 timeout) cil managed" />
1857       <MemberType>Method</MemberType>
1858       <AssemblyInfo>
1859         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1860         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1861       </AssemblyInfo>
1862       <ReturnValue>
1863         <ReturnType>System.Void</ReturnType>
1864       </ReturnValue>
1865       <Parameters>
1866         <Parameter Name="timeout" Type="System.Int32" />
1867       </Parameters>
1868       <Docs>
1869         <param name="timeout">To be added.</param>
1870         <summary>To be added.</summary>
1871         <remarks>To be added.</remarks>
1872       </Docs>
1873     </Member>
1874     <Member MemberName="Connect">
1875       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void Connect(class System.Net.EndPoint remoteEP)" />
1876       <MemberSignature Language="C#" Value="public void Connect (System.Net.EndPoint remoteEP);" />
1877       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(class System.Net.EndPoint remoteEP) cil managed" />
1878       <MemberType>Method</MemberType>
1879       <AssemblyInfo>
1880         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1881         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1882         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1883       </AssemblyInfo>
1884       <ReturnValue>
1885         <ReturnType>System.Void</ReturnType>
1886       </ReturnValue>
1887       <Parameters>
1888         <Parameter Name="remoteEP" Type="System.Net.EndPoint" />
1889       </Parameters>
1890       <Docs>
1891         <param name="remoteEP">
1892           <para>The <see cref="T:System.Net.EndPoint" qualify="true" /> associated with the socket to connect to.</para>
1893         </param>
1894         <summary>
1895           <para>Associates the current instance with a remote endpoint.</para>
1896         </summary>
1897         <remarks>
1898           <para>This method sets the <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> property of the current instance to
1899 <paramref name="remoteEP" />.</para>
1900           <block subset="none" type="note">
1901             <para> For connection-oriented protocols, this method
1902       establishes a connection between the current instance and the
1903       socket associated with <paramref name="remoteEP" />. This method is used only on
1904       the client-side. The <see cref="M:System.Net.Sockets.Socket.Accept" /> method establishes the connection on the
1905       server-side. Once the connection has been made, data can
1906       be sent using the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />
1907       method, and received using the <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method. </para>
1908             <para> For connectionless protocols, the <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" />
1909 method can be used from both
1910 client and server-sides, allowing the use of the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method instead of the <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />
1911 method. The <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> property is set to
1912 <paramref name="remoteEP" /> 
1913 and
1914 the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property is set to a value determined
1915 by the protocol; however, a connection is not established. Subsequent data is
1916 required to be received on the endpoint set in
1917 the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property.</para>
1918           </block>
1919         </remarks>
1920         <exception cref="T:System.ArgumentNullException">
1921           <paramref name="remoteEP " />is <see langword="null" />.</exception>
1922         <exception cref="T:System.InvalidOperationException">
1923           <para>An asynchronous call is pending and a blocking method has been called.</para>
1924         </exception>
1925         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
1926         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
1927         <exception cref="T:System.Security.SecurityException"> A caller in the call stack does not have the required permission.</exception>
1928         <permission cref="T:System.Net.SocketPermission">Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</permission>
1929       </Docs>
1930       <Excluded>0</Excluded>
1931     </Member>
1932     <Member MemberName="Connect">
1933       <MemberSignature Language="C#" Value="public void Connect (System.Net.IPAddress address, int port);" />
1934       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(class System.Net.IPAddress address, int32 port) cil managed" />
1935       <MemberType>Method</MemberType>
1936       <AssemblyInfo>
1937         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1938         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1939       </AssemblyInfo>
1940       <ReturnValue>
1941         <ReturnType>System.Void</ReturnType>
1942       </ReturnValue>
1943       <Parameters>
1944         <Parameter Name="address" Type="System.Net.IPAddress" />
1945         <Parameter Name="port" Type="System.Int32" />
1946       </Parameters>
1947       <Docs>
1948         <param name="address">To be added.</param>
1949         <param name="port">To be added.</param>
1950         <summary>To be added.</summary>
1951         <remarks>To be added.</remarks>
1952       </Docs>
1953     </Member>
1954     <Member MemberName="Connect">
1955       <MemberSignature Language="C#" Value="public void Connect (System.Net.IPAddress[] addresses, int port);" />
1956       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(class System.Net.IPAddress[] addresses, int32 port) cil managed" />
1957       <MemberType>Method</MemberType>
1958       <AssemblyInfo>
1959         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1960         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1961       </AssemblyInfo>
1962       <ReturnValue>
1963         <ReturnType>System.Void</ReturnType>
1964       </ReturnValue>
1965       <Parameters>
1966         <Parameter Name="addresses" Type="System.Net.IPAddress[]" />
1967         <Parameter Name="port" Type="System.Int32" />
1968       </Parameters>
1969       <Docs>
1970         <param name="addresses">To be added.</param>
1971         <param name="port">To be added.</param>
1972         <summary>To be added.</summary>
1973         <remarks>To be added.</remarks>
1974       </Docs>
1975     </Member>
1976     <Member MemberName="Connect">
1977       <MemberSignature Language="C#" Value="public void Connect (string host, int port);" />
1978       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(string host, int32 port) cil managed" />
1979       <MemberType>Method</MemberType>
1980       <AssemblyInfo>
1981         <AssemblyVersion>2.0.0.0</AssemblyVersion>
1982         <AssemblyVersion>4.0.0.0</AssemblyVersion>
1983       </AssemblyInfo>
1984       <ReturnValue>
1985         <ReturnType>System.Void</ReturnType>
1986       </ReturnValue>
1987       <Parameters>
1988         <Parameter Name="host" Type="System.String" />
1989         <Parameter Name="port" Type="System.Int32" />
1990       </Parameters>
1991       <Docs>
1992         <param name="host">To be added.</param>
1993         <param name="port">To be added.</param>
1994         <summary>To be added.</summary>
1995         <remarks>To be added.</remarks>
1996       </Docs>
1997     </Member>
1998     <Member MemberName="ConnectAsync">
1999       <MemberSignature Language="C#" Value="public bool ConnectAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
2000       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ConnectAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
2001       <MemberType>Method</MemberType>
2002       <AssemblyInfo>
2003         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2004         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2005       </AssemblyInfo>
2006       <ReturnValue>
2007         <ReturnType>System.Boolean</ReturnType>
2008       </ReturnValue>
2009       <Parameters>
2010         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
2011       </Parameters>
2012       <Docs>
2013         <param name="e">To be added.</param>
2014         <summary>To be added.</summary>
2015         <returns>To be added.</returns>
2016         <remarks>To be added.</remarks>
2017       </Docs>
2018     </Member>
2019     <Member MemberName="Connected">
2020       <MemberSignature Language="ILASM" Value=".property bool Connected { public hidebysig specialname instance bool get_Connected() }" />
2021       <MemberSignature Language="C#" Value="public bool Connected { get; }" />
2022       <MemberSignature Language="ILAsm" Value=".property instance bool Connected" />
2023       <MemberType>Property</MemberType>
2024       <AssemblyInfo>
2025         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2026         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2027         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2028       </AssemblyInfo>
2029       <ReturnValue>
2030         <ReturnType>System.Boolean</ReturnType>
2031       </ReturnValue>
2032       <Parameters />
2033       <Docs>
2034         <summary>
2035           <para> Gets a <see cref="T:System.Boolean" /> value indicating whether the current instance is connected.
2036    </para>
2037         </summary>
2038         <value>
2039           <para>
2040             <see langword="true" /> indicates that 
2041    the current instance was connected at
2042    the time of the
2043    last I/O operation;
2044 <see langword="false" /> indicates that the 
2045    current instance is not connected.</para>
2046         </value>
2047         <remarks>
2048           <para> This property is read-only.
2049       </para>
2050           <para>When this property returns <see langword="true" />, the current instance was
2051    connected at the time of the last I/O operation; it might not still be connected.
2052    When this property returns <see langword="false" />, the current instance was
2053    never connected or is not currently connected.</para>
2054           <para>The current instance is considered connected when
2055    the <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" />
2056    property contains a valid endpoint.</para>
2057           <para>
2058             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.Accept" /> and <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> methods,
2059 and their asynchronous counterparts set this
2060 property.</block>
2061           </para>
2062         </remarks>
2063       </Docs>
2064       <Excluded>0</Excluded>
2065     </Member>
2066     <Member MemberName="Disconnect">
2067       <MemberSignature Language="C#" Value="public void Disconnect (bool reuseSocket);" />
2068       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Disconnect(bool reuseSocket) cil managed" />
2069       <MemberType>Method</MemberType>
2070       <AssemblyInfo>
2071         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2072         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2073       </AssemblyInfo>
2074       <ReturnValue>
2075         <ReturnType>System.Void</ReturnType>
2076       </ReturnValue>
2077       <Parameters>
2078         <Parameter Name="reuseSocket" Type="System.Boolean" />
2079       </Parameters>
2080       <Docs>
2081         <param name="reuseSocket">To be added.</param>
2082         <summary>To be added.</summary>
2083         <remarks>To be added.</remarks>
2084       </Docs>
2085     </Member>
2086     <Member MemberName="DisconnectAsync">
2087       <MemberSignature Language="C#" Value="public bool DisconnectAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
2088       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool DisconnectAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
2089       <MemberType>Method</MemberType>
2090       <AssemblyInfo>
2091         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2092         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2093       </AssemblyInfo>
2094       <ReturnValue>
2095         <ReturnType>System.Boolean</ReturnType>
2096       </ReturnValue>
2097       <Parameters>
2098         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
2099       </Parameters>
2100       <Docs>
2101         <param name="e">To be added.</param>
2102         <summary>To be added.</summary>
2103         <returns>To be added.</returns>
2104         <remarks>To be added.</remarks>
2105       </Docs>
2106     </Member>
2107     <Member MemberName="Dispose">
2108       <MemberSignature Language="C#" Value="public void Dispose ();" />
2109       <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" />
2110       <MemberType>Method</MemberType>
2111       <AssemblyInfo>
2112         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2113       </AssemblyInfo>
2114       <ReturnValue>
2115         <ReturnType>System.Void</ReturnType>
2116       </ReturnValue>
2117       <Parameters />
2118       <Docs>
2119         <summary>To be added.</summary>
2120         <remarks>To be added.</remarks>
2121       </Docs>
2122     </Member>
2123     <Member MemberName="Dispose">
2124       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual void Dispose(bool disposing)" />
2125       <MemberSignature Language="C#" Value="protected virtual void Dispose (bool disposing);" />
2126       <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void Dispose(bool disposing) cil managed" />
2127       <MemberType>Method</MemberType>
2128       <AssemblyInfo>
2129         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2130         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2131         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2132       </AssemblyInfo>
2133       <ReturnValue>
2134         <ReturnType>System.Void</ReturnType>
2135       </ReturnValue>
2136       <Parameters>
2137         <Parameter Name="disposing" Type="System.Boolean" />
2138       </Parameters>
2139       <Docs>
2140         <param name="disposing">A <see cref="T:System.Boolean" qualify="true" />. Specify <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to release only unmanaged resources.</param>
2141         <summary>
2142           <para>Closes the current instance, releases the unmanaged resources allocated by the current
2143       instance, and optionally releases the
2144       managed resources.</para>
2145         </summary>
2146         <remarks>
2147           <para>
2148             <block subset="none" type="behaviors">
2149       
2150       This method
2151       closes the current <see cref="T:System.Net.Sockets.Socket" /> instance
2152       and releases all unmanaged resources allocated by the
2153       current instance. When <paramref name="disposing" /> is <see langword="true" />, this method also releases all resources held by any managed
2154       objects allocated by the current
2155       instance.
2156    </block>
2157           </para>
2158           <para>
2159             <block subset="none" type="default">
2160       
2161       This method
2162       closes the current <see cref="T:System.Net.Sockets.Socket" /> instance but does not release any managed
2163       resources.
2164    </block>
2165           </para>
2166           <para>
2167             <block subset="none" type="overrides">
2168       
2169       The <see cref="M:System.Net.Sockets.Socket.Dispose(System.Boolean)" /> method can be called
2170       multiple times by other objects. When overriding this method, do not reference
2171       objects that have been previously disposed in an earlier call.
2172    </block>
2173           </para>
2174           <para>
2175             <block subset="none" type="usage">
2176       
2177       Use this method to release
2178       resources allocated by
2179       the current
2180       instance.
2181    </block>
2182           </para>
2183         </remarks>
2184       </Docs>
2185       <Excluded>0</Excluded>
2186     </Member>
2187     <Member MemberName="DontFragment">
2188       <MemberSignature Language="C#" Value="public bool DontFragment { get; set; }" />
2189       <MemberSignature Language="ILAsm" Value=".property instance bool DontFragment" />
2190       <MemberType>Property</MemberType>
2191       <AssemblyInfo>
2192         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2193         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2194       </AssemblyInfo>
2195       <ReturnValue>
2196         <ReturnType>System.Boolean</ReturnType>
2197       </ReturnValue>
2198       <Docs>
2199         <summary>To be added.</summary>
2200         <value>To be added.</value>
2201         <remarks>To be added.</remarks>
2202       </Docs>
2203     </Member>
2204     <Member MemberName="DuplicateAndClose">
2205       <MemberSignature Language="C#" Value="public System.Net.Sockets.SocketInformation DuplicateAndClose (int targetProcessId);" />
2206       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance valuetype System.Net.Sockets.SocketInformation DuplicateAndClose(int32 targetProcessId) cil managed" />
2207       <MemberType>Method</MemberType>
2208       <AssemblyInfo>
2209         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2210         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2211       </AssemblyInfo>
2212       <Attributes>
2213         <Attribute>
2214           <AttributeName>System.MonoLimitation("We do not support passing sockets across processes, we merely allow this API to pass the socket across AppDomains")</AttributeName>
2215         </Attribute>
2216       </Attributes>
2217       <ReturnValue>
2218         <ReturnType>System.Net.Sockets.SocketInformation</ReturnType>
2219       </ReturnValue>
2220       <Parameters>
2221         <Parameter Name="targetProcessId" Type="System.Int32" />
2222       </Parameters>
2223       <Docs>
2224         <param name="targetProcessId">To be added.</param>
2225         <summary>To be added.</summary>
2226         <returns>To be added.</returns>
2227         <remarks>To be added.</remarks>
2228       </Docs>
2229     </Member>
2230     <Member MemberName="EnableBroadcast">
2231       <MemberSignature Language="C#" Value="public bool EnableBroadcast { get; set; }" />
2232       <MemberSignature Language="ILAsm" Value=".property instance bool EnableBroadcast" />
2233       <MemberType>Property</MemberType>
2234       <AssemblyInfo>
2235         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2236         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2237       </AssemblyInfo>
2238       <ReturnValue>
2239         <ReturnType>System.Boolean</ReturnType>
2240       </ReturnValue>
2241       <Docs>
2242         <summary>To be added.</summary>
2243         <value>To be added.</value>
2244         <remarks>To be added.</remarks>
2245       </Docs>
2246     </Member>
2247     <Member MemberName="EndAccept">
2248       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.Net.Sockets.Socket EndAccept(class System.IAsyncResult asyncResult)" />
2249       <MemberSignature Language="C#" Value="public System.Net.Sockets.Socket EndAccept (IAsyncResult result);" />
2250       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Net.Sockets.Socket EndAccept(class System.IAsyncResult result) cil managed" />
2251       <MemberType>Method</MemberType>
2252       <AssemblyInfo>
2253         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2254         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2255         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2256       </AssemblyInfo>
2257       <ReturnValue>
2258         <ReturnType>System.Net.Sockets.Socket</ReturnType>
2259       </ReturnValue>
2260       <Parameters>
2261         <Parameter Name="result" Type="System.IAsyncResult" />
2262       </Parameters>
2263       <Docs>
2264         <param name="result">A <see cref="T:System.IAsyncResult" /> object that holds the state information for the asynchronous operation.</param>
2265         <summary>
2266           <para> Ends an asynchronous call to accept
2267       an incoming connection
2268       request.</para>
2269         </summary>
2270         <returns>
2271           <para> A new connected <see cref="T:System.Net.Sockets.Socket" />
2272 instance.</para>
2273         </returns>
2274         <remarks>
2275           <para> This method blocks if the asynchronous operation has not completed.</para>
2276           <para>The <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" />
2277 method completes an asynchronous request that was started with a call to the
2278 <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method. The object specified for the 
2279 <paramref name="asyncResult" /> parameter is required to be the same object as was returned 
2280 by the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" />
2281 method call that began the
2282 request.</para>
2283           <para>If the <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" />
2284 method is invoked via the <see cref="T:System.AsyncCallback" /> delegate specified to the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method, the
2285 <paramref name="asyncResult" /> parameter is the <see cref="T:System.IAsyncResult" /> 
2286 argument passed to the
2287 delegate's method.</para>
2288         </remarks>
2289         <exception cref="T:System.ArgumentNullException">
2290           <paramref name="asyncResult " />is <see langword="null" />.</exception>
2291         <exception cref="T:System.ArgumentException">
2292           <paramref name="asyncResult " /> was not returned by the current instance from a call to the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.</exception>
2293         <exception cref="T:System.InvalidOperationException">
2294           <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> was previously called for this operation.</exception>
2295         <exception cref="T:System.Net.Sockets.SocketException">An error occurred during the operation. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2296         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2297         <example>
2298           <para>For an outline of an asynchronous operation, see
2299       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
2300       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> method, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
2301         </example>
2302       </Docs>
2303       <Excluded>0</Excluded>
2304     </Member>
2305     <Member MemberName="EndAccept">
2306       <MemberSignature Language="C#" Value="public System.Net.Sockets.Socket EndAccept (out byte[] buffer, IAsyncResult asyncResult);" />
2307       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Net.Sockets.Socket EndAccept(unsigned int8[] buffer, class System.IAsyncResult asyncResult) cil managed" />
2308       <MemberType>Method</MemberType>
2309       <AssemblyInfo>
2310         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2311         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2312       </AssemblyInfo>
2313       <ReturnValue>
2314         <ReturnType>System.Net.Sockets.Socket</ReturnType>
2315       </ReturnValue>
2316       <Parameters>
2317         <Parameter Name="buffer" Type="System.Byte[]&amp;" RefType="out" />
2318         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2319       </Parameters>
2320       <Docs>
2321         <param name="buffer">To be added.</param>
2322         <param name="asyncResult">To be added.</param>
2323         <summary>To be added.</summary>
2324         <returns>To be added.</returns>
2325         <remarks>To be added.</remarks>
2326       </Docs>
2327     </Member>
2328     <Member MemberName="EndAccept">
2329       <MemberSignature Language="C#" Value="public System.Net.Sockets.Socket EndAccept (out byte[] buffer, out int bytesTransferred, IAsyncResult asyncResult);" />
2330       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Net.Sockets.Socket EndAccept(unsigned int8[] buffer, int32 bytesTransferred, class System.IAsyncResult asyncResult) cil managed" />
2331       <MemberType>Method</MemberType>
2332       <AssemblyInfo>
2333         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2334         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2335       </AssemblyInfo>
2336       <ReturnValue>
2337         <ReturnType>System.Net.Sockets.Socket</ReturnType>
2338       </ReturnValue>
2339       <Parameters>
2340         <Parameter Name="buffer" Type="System.Byte[]&amp;" RefType="out" />
2341         <Parameter Name="bytesTransferred" Type="System.Int32&amp;" RefType="out" />
2342         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2343       </Parameters>
2344       <Docs>
2345         <param name="buffer">To be added.</param>
2346         <param name="bytesTransferred">To be added.</param>
2347         <param name="asyncResult">To be added.</param>
2348         <summary>To be added.</summary>
2349         <returns>To be added.</returns>
2350         <remarks>To be added.</remarks>
2351       </Docs>
2352     </Member>
2353     <Member MemberName="EndConnect">
2354       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void EndConnect(class System.IAsyncResult asyncResult)" />
2355       <MemberSignature Language="C#" Value="public void EndConnect (IAsyncResult result);" />
2356       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void EndConnect(class System.IAsyncResult result) cil managed" />
2357       <MemberType>Method</MemberType>
2358       <AssemblyInfo>
2359         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2360         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2361         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2362       </AssemblyInfo>
2363       <ReturnValue>
2364         <ReturnType>System.Void</ReturnType>
2365       </ReturnValue>
2366       <Parameters>
2367         <Parameter Name="result" Type="System.IAsyncResult" />
2368       </Parameters>
2369       <Docs>
2370         <param name="result">A <see cref="T:System.IAsyncResult" /> object that holds the state information for the asynchronous operation.</param>
2371         <summary>
2372           <para> Ends an asynchronous call
2373       to associate the current instance with a remote endpoint.</para>
2374         </summary>
2375         <remarks>
2376           <para> This method blocks if the asynchronous operation has not completed.</para>
2377           <para>The <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" />
2378 method completes an asynchronous request that was started with a call to the
2379 <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method. The object specified for the 
2380 <paramref name="asyncResult" /> parameter is required to be the same object as was returned 
2381 by the <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" />
2382 method call that began the
2383 request.</para>
2384           <para>If the <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" />
2385 method is invoked via the <see cref="T:System.AsyncCallback" /> delegate specified to the <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method, the
2386 <paramref name="asyncResult" /> parameter is the <see cref="T:System.IAsyncResult" /> 
2387 argument passed to the
2388 delegate's method.</para>
2389         </remarks>
2390         <exception cref="T:System.ArgumentNullException">
2391           <paramref name="asyncResult " />is <see langword="null" />.</exception>
2392         <exception cref="T:System.ArgumentException">
2393           <paramref name="asyncResult " /> was not returned by the current instance from a call to the <see cref="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method.</exception>
2394         <exception cref="T:System.InvalidOperationException">
2395           <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" /> was previously called for this operation.</exception>
2396         <exception cref="T:System.Net.Sockets.SocketException">An error occurred during the operation. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2397         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2398         <example>
2399           <para>For an outline of an asynchronous operation, see
2400       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
2401       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)" /> method, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
2402         </example>
2403       </Docs>
2404       <Excluded>0</Excluded>
2405     </Member>
2406     <Member MemberName="EndDisconnect">
2407       <MemberSignature Language="C#" Value="public void EndDisconnect (IAsyncResult asyncResult);" />
2408       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void EndDisconnect(class System.IAsyncResult asyncResult) cil managed" />
2409       <MemberType>Method</MemberType>
2410       <AssemblyInfo>
2411         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2412         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2413       </AssemblyInfo>
2414       <ReturnValue>
2415         <ReturnType>System.Void</ReturnType>
2416       </ReturnValue>
2417       <Parameters>
2418         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2419       </Parameters>
2420       <Docs>
2421         <param name="asyncResult">To be added.</param>
2422         <summary>To be added.</summary>
2423         <remarks>To be added.</remarks>
2424       </Docs>
2425     </Member>
2426     <Member MemberName="EndReceive">
2427       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 EndReceive(class System.IAsyncResult asyncResult)" />
2428       <MemberSignature Language="C#" Value="public int EndReceive (IAsyncResult result);" />
2429       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndReceive(class System.IAsyncResult result) cil managed" />
2430       <MemberType>Method</MemberType>
2431       <AssemblyInfo>
2432         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2433         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2434         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2435       </AssemblyInfo>
2436       <ReturnValue>
2437         <ReturnType>System.Int32</ReturnType>
2438       </ReturnValue>
2439       <Parameters>
2440         <Parameter Name="result" Type="System.IAsyncResult" />
2441       </Parameters>
2442       <Docs>
2443         <param name="result">
2444           <para>A <see cref="T:System.IAsyncResult" /> object that holds the state information for the asynchronous operation.</para>
2445         </param>
2446         <summary>
2447           <para> Ends an asynchronous call to receive
2448       data from a
2449       socket.</para>
2450         </summary>
2451         <returns>
2452           <para> A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes received.</para>
2453         </returns>
2454         <remarks>
2455           <para> This method blocks if the asynchronous operation has not completed.</para>
2456           <para>The <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" />
2457 method completes an asynchronous request that was started with a call to the
2458 <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method. The object specified for the 
2459 <paramref name="asyncResult" /> parameter is required to be the same object as was returned 
2460 by the <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" />
2461 method call that began the
2462 request.</para>
2463           <para>If the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" />
2464 method is invoked via the <see cref="T:System.AsyncCallback" /> delegate specified to the <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method, the
2465 <paramref name="asyncResult" /> parameter is the <see cref="T:System.IAsyncResult" /> 
2466 argument passed to the
2467 delegate's method.</para>
2468         </remarks>
2469         <exception cref="T:System.ArgumentNullException">
2470           <paramref name="asyncResult " />is <see langword="null" />.</exception>
2471         <exception cref="T:System.ArgumentException">
2472           <paramref name="asyncResult " /> was not returned by the current instance from a call to the <see cref="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.</exception>
2473         <exception cref="T:System.InvalidOperationException">
2474           <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> was previously called for this operation.</exception>
2475         <exception cref="T:System.Net.Sockets.SocketException">An error occurred during the operation. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2476         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2477         <example>
2478           <para>For an outline of an asynchronous operation, see
2479       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
2480       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> method, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
2481         </example>
2482       </Docs>
2483       <Excluded>0</Excluded>
2484     </Member>
2485     <Member MemberName="EndReceive">
2486       <MemberSignature Language="C#" Value="public int EndReceive (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);" />
2487       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndReceive(class System.IAsyncResult asyncResult, valuetype System.Net.Sockets.SocketError errorCode) cil managed" />
2488       <MemberType>Method</MemberType>
2489       <AssemblyInfo>
2490         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2491         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2492       </AssemblyInfo>
2493       <ReturnValue>
2494         <ReturnType>System.Int32</ReturnType>
2495       </ReturnValue>
2496       <Parameters>
2497         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2498         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
2499       </Parameters>
2500       <Docs>
2501         <param name="asyncResult">To be added.</param>
2502         <param name="errorCode">To be added.</param>
2503         <summary>To be added.</summary>
2504         <returns>To be added.</returns>
2505         <remarks>To be added.</remarks>
2506       </Docs>
2507     </Member>
2508     <Member MemberName="EndReceiveFrom">
2509       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 EndReceiveFrom(class System.IAsyncResult asyncResult, class System.Net.EndPoint&amp; endPoint)" />
2510       <MemberSignature Language="C#" Value="public int EndReceiveFrom (IAsyncResult result, ref System.Net.EndPoint end_point);" />
2511       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndReceiveFrom(class System.IAsyncResult result, class System.Net.EndPoint end_point) cil managed" />
2512       <MemberType>Method</MemberType>
2513       <AssemblyInfo>
2514         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2515         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2516         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2517       </AssemblyInfo>
2518       <ReturnValue>
2519         <ReturnType>System.Int32</ReturnType>
2520       </ReturnValue>
2521       <Parameters>
2522         <Parameter Name="result" Type="System.IAsyncResult" />
2523         <Parameter Name="end_point" Type="System.Net.EndPoint&amp;" RefType="ref" />
2524       </Parameters>
2525       <Docs>
2526         <param name="result">To be added.</param>
2527         <param name="end_point">To be added.</param>
2528         <summary>
2529           <para>Ends an asynchronous call to receive
2530       data from a socket and store the endpoint associated with the socket that
2531       sent the data.</para>
2532         </summary>
2533         <returns>
2534           <para>A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes received.</para>
2535         </returns>
2536         <remarks>
2537           <para> This method blocks if the asynchronous operation has not completed.</para>
2538           <para>The <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" />
2539 method completes an asynchronous request that was started with a call to the
2540 <see cref="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" /> method. The object specified for the 
2541 <paramref name="asyncResult" /> parameter is required to be the same object as was returned 
2542 by the <see cref="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" />
2543 method call that began the
2544 request.</para>
2545           <para>If the <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" />
2546 method is invoked via the <see cref="T:System.AsyncCallback" /> delegate specified to the <see cref="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" /> method, the
2547 <paramref name="asyncResult" /> parameter is the <see cref="T:System.IAsyncResult" /> 
2548 argument passed to the
2549 delegate's method.</para>
2550         </remarks>
2551         <exception cref="T:System.ArgumentNullException">
2552           <paramref name="asyncResult " />is <see langword="null" />.</exception>
2553         <exception cref="T:System.ArgumentException">
2554           <paramref name="asyncResult " /> was not returned by the current instance from a call to the <see cref="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" /> method.</exception>
2555         <exception cref="T:System.InvalidOperationException">
2556           <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" /> was previously called for this operation.</exception>
2557         <exception cref="T:System.Net.Sockets.SocketException">An error occurred during the operation. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2558         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2559         <example>
2560           <para>For an outline of an asynchronous operation, see
2561       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
2562       For
2563       the complete example, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
2564         </example>
2565       </Docs>
2566       <Excluded>0</Excluded>
2567     </Member>
2568     <Member MemberName="EndReceiveMessageFrom">
2569       <MemberSignature Language="C#" Value="public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);" />
2570       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndReceiveMessageFrom(class System.IAsyncResult asyncResult, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint endPoint, valuetype System.Net.Sockets.IPPacketInformation ipPacketInformation) cil managed" />
2571       <MemberType>Method</MemberType>
2572       <AssemblyInfo>
2573         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2574         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2575       </AssemblyInfo>
2576       <Attributes>
2577         <Attribute>
2578           <AttributeName>System.MonoTODO</AttributeName>
2579         </Attribute>
2580       </Attributes>
2581       <ReturnValue>
2582         <ReturnType>System.Int32</ReturnType>
2583       </ReturnValue>
2584       <Parameters>
2585         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2586         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags&amp;" RefType="ref" />
2587         <Parameter Name="endPoint" Type="System.Net.EndPoint&amp;" RefType="ref" />
2588         <Parameter Name="ipPacketInformation" Type="System.Net.Sockets.IPPacketInformation&amp;" RefType="out" />
2589       </Parameters>
2590       <Docs>
2591         <param name="asyncResult">To be added.</param>
2592         <param name="socketFlags">To be added.</param>
2593         <param name="endPoint">To be added.</param>
2594         <param name="ipPacketInformation">To be added.</param>
2595         <summary>To be added.</summary>
2596         <returns>To be added.</returns>
2597         <remarks>To be added.</remarks>
2598       </Docs>
2599     </Member>
2600     <Member MemberName="EndSend">
2601       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 EndSend(class System.IAsyncResult asyncResult)" />
2602       <MemberSignature Language="C#" Value="public int EndSend (IAsyncResult result);" />
2603       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndSend(class System.IAsyncResult result) cil managed" />
2604       <MemberType>Method</MemberType>
2605       <AssemblyInfo>
2606         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2607         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2608         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2609       </AssemblyInfo>
2610       <ReturnValue>
2611         <ReturnType>System.Int32</ReturnType>
2612       </ReturnValue>
2613       <Parameters>
2614         <Parameter Name="result" Type="System.IAsyncResult" />
2615       </Parameters>
2616       <Docs>
2617         <param name="result">
2618           <para>A <see cref="T:System.IAsyncResult" /> object that holds the state information for the asynchronous operation.</para>
2619         </param>
2620         <summary>
2621           <para>Ends an asynchronous call to send data
2622       to a connected socket.</para>
2623         </summary>
2624         <returns>
2625           <para>A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes sent. </para>
2626         </returns>
2627         <remarks>
2628           <para> This method blocks if the asynchronous operation has not completed.</para>
2629           <para>The <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" />
2630 method completes an asynchronous request that was started with a call to the
2631 <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method. The object specified for the 
2632 <paramref name="asyncResult" /> parameter is required to be the same object as was returned 
2633 by the <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" />
2634 method call that began the
2635 request.</para>
2636           <para>If the <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" />
2637 method is invoked via the <see cref="T:System.AsyncCallback" /> delegate specified to the <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method, the
2638 <paramref name="asyncResult" /> parameter is the <see cref="T:System.IAsyncResult" /> 
2639 argument passed to the
2640 delegate's method.</para>
2641         </remarks>
2642         <exception cref="T:System.ArgumentNullException">
2643           <paramref name="asyncResult " />is <see langword="null" />.</exception>
2644         <exception cref="T:System.ArgumentException">
2645           <paramref name="asyncResult " /> was not returned by the current instance from a call to the <see cref="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)" /> method.</exception>
2646         <exception cref="T:System.InvalidOperationException">
2647           <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> was previously called for this operation.</exception>
2648         <exception cref="T:System.Net.Sockets.SocketException">An error occurred during the operation. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2649         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2650         <example>
2651           <para>For an outline of an asynchronous operation, see
2652       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
2653       For the complete example, which uses the <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> method, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
2654         </example>
2655       </Docs>
2656       <Excluded>0</Excluded>
2657     </Member>
2658     <Member MemberName="EndSend">
2659       <MemberSignature Language="C#" Value="public int EndSend (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);" />
2660       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndSend(class System.IAsyncResult asyncResult, valuetype System.Net.Sockets.SocketError errorCode) cil managed" />
2661       <MemberType>Method</MemberType>
2662       <AssemblyInfo>
2663         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2664         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2665       </AssemblyInfo>
2666       <ReturnValue>
2667         <ReturnType>System.Int32</ReturnType>
2668       </ReturnValue>
2669       <Parameters>
2670         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2671         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
2672       </Parameters>
2673       <Docs>
2674         <param name="asyncResult">To be added.</param>
2675         <param name="errorCode">To be added.</param>
2676         <summary>To be added.</summary>
2677         <returns>To be added.</returns>
2678         <remarks>To be added.</remarks>
2679       </Docs>
2680     </Member>
2681     <Member MemberName="EndSendFile">
2682       <MemberSignature Language="C#" Value="public void EndSendFile (IAsyncResult asyncResult);" />
2683       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void EndSendFile(class System.IAsyncResult asyncResult) cil managed" />
2684       <MemberType>Method</MemberType>
2685       <AssemblyInfo>
2686         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2687         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2688       </AssemblyInfo>
2689       <ReturnValue>
2690         <ReturnType>System.Void</ReturnType>
2691       </ReturnValue>
2692       <Parameters>
2693         <Parameter Name="asyncResult" Type="System.IAsyncResult" />
2694       </Parameters>
2695       <Docs>
2696         <param name="asyncResult">To be added.</param>
2697         <summary>To be added.</summary>
2698         <remarks>To be added.</remarks>
2699       </Docs>
2700     </Member>
2701     <Member MemberName="EndSendTo">
2702       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 EndSendTo(class System.IAsyncResult asyncResult)" />
2703       <MemberSignature Language="C#" Value="public int EndSendTo (IAsyncResult result);" />
2704       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 EndSendTo(class System.IAsyncResult result) cil managed" />
2705       <MemberType>Method</MemberType>
2706       <AssemblyInfo>
2707         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2708         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2709         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2710       </AssemblyInfo>
2711       <ReturnValue>
2712         <ReturnType>System.Int32</ReturnType>
2713       </ReturnValue>
2714       <Parameters>
2715         <Parameter Name="result" Type="System.IAsyncResult" />
2716       </Parameters>
2717       <Docs>
2718         <param name="result">
2719           <para>A <see cref="T:System.IAsyncResult" /> object that holds the state information for the asynchronous operation.</para>
2720         </param>
2721         <summary>
2722           <para>Ends an asynchronous call to send data to a socket associated
2723       with a specified endpoint.</para>
2724         </summary>
2725         <returns>
2726           <para>A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes sent. </para>
2727         </returns>
2728         <remarks>
2729           <para> This method blocks if the asynchronous operation has not completed.</para>
2730           <para>The <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" />
2731 method completes an asynchronous request that was started with a call to the
2732 <see cref="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method. The object specified for the 
2733 <paramref name="asyncResult" /> parameter is required to be the same object as was returned 
2734 by the <see cref="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)" />
2735 method call that began the
2736 request.</para>
2737           <para>If the <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" />
2738 method is invoked via the <see cref="T:System.AsyncCallback" /> delegate specified to the <see cref="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)" /> method, the
2739 <paramref name="asyncResult" /> parameter is the <see cref="T:System.IAsyncResult" /> 
2740 argument passed to the
2741 delegate's method.</para>
2742         </remarks>
2743         <exception cref="T:System.ArgumentNullException">
2744           <paramref name="asyncResult " />is <see langword="null" />.</exception>
2745         <exception cref="T:System.ArgumentException">
2746           <paramref name="asyncResult " /> was not returned by the current instance from a call to the <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" /> method.</exception>
2747         <exception cref="T:System.InvalidOperationException">
2748           <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" /> was previously called for this operation.</exception>
2749         <exception cref="T:System.Net.Sockets.SocketException">An error occurred during the operation. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2750         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2751         <example>
2752           <para>For an outline of an asynchronous operation, see
2753       the <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" /> method.
2754       For
2755       the complete example, see the <see cref="T:System.Net.Sockets.Socket" /> class overview.</para>
2756         </example>
2757       </Docs>
2758       <Excluded>0</Excluded>
2759     </Member>
2760     <Member MemberName="ExclusiveAddressUse">
2761       <MemberSignature Language="C#" Value="public bool ExclusiveAddressUse { get; set; }" />
2762       <MemberSignature Language="ILAsm" Value=".property instance bool ExclusiveAddressUse" />
2763       <MemberType>Property</MemberType>
2764       <AssemblyInfo>
2765         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2766         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2767       </AssemblyInfo>
2768       <ReturnValue>
2769         <ReturnType>System.Boolean</ReturnType>
2770       </ReturnValue>
2771       <Docs>
2772         <summary>To be added.</summary>
2773         <value>To be added.</value>
2774         <remarks>To be added.</remarks>
2775       </Docs>
2776     </Member>
2777     <Member MemberName="Finalize">
2778       <MemberSignature Language="ILASM" Value=".method family hidebysig virtual void Finalize()" />
2779       <MemberSignature Language="C#" Value="~Socket ();" />
2780       <MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance void Finalize() cil managed" />
2781       <MemberType>Method</MemberType>
2782       <AssemblyInfo>
2783         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2784         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2785         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2786       </AssemblyInfo>
2787       <ReturnValue>
2788         <ReturnType>System.Void</ReturnType>
2789       </ReturnValue>
2790       <Parameters />
2791       <Docs>
2792         <summary>
2793           <para>Closes the current instance and releases unmanaged resources allocated by the current
2794       instance.</para>
2795         </summary>
2796         <remarks>
2797           <block subset="none" type="note">
2798             <para> Application code does not call this method; it
2799          is automatically invoked during garbage collection unless finalization by the
2800          garbage collector has been disabled. For more information, see <see cref="M:System.GC.SuppressFinalize(System.Object)" qualify="true" />,
2801          and <see cref="M:System.Object.Finalize" qualify="true" />.</para>
2802             <para> This method calls <see cref="M:System.Net.Sockets.NetworkStream.Dispose(System.Boolean)" />(<see langword="false" />) to free unmanaged
2803       resources used by the current instance.</para>
2804             <para>This method overrides <see cref="M:System.Object.Finalize" qualify="true" />.</para>
2805           </block>
2806         </remarks>
2807       </Docs>
2808       <Excluded>0</Excluded>
2809     </Member>
2810     <Member MemberName="GetHashCode">
2811       <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetHashCode()" />
2812       <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
2813       <MemberType>Method</MemberType>
2814       <ReturnValue>
2815         <ReturnType>System.Int32</ReturnType>
2816       </ReturnValue>
2817       <Parameters />
2818       <Docs>
2819         <summary>
2820           <para>Generates a hash code for the current instance.</para>
2821         </summary>
2822         <returns>
2823           <para>A <see cref="T:System.Int32" qualify="true" /> containing the hash code for the current instance.</para>
2824         </returns>
2825         <remarks>
2826           <para>
2827       The algorithm used to generate the hash code is unspecified.
2828    </para>
2829           <para>
2830             <block subset="none" type="note">
2831       
2832       This method overrides <see cref="M:System.Object.GetHashCode" qualify="true" />.
2833    </block>
2834           </para>
2835         </remarks>
2836       </Docs>
2837       <Excluded>0</Excluded>
2838       <AssemblyInfo>
2839         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2840       </AssemblyInfo>
2841     </Member>
2842     <Member MemberName="GetSocketOption">
2843       <MemberSignature Language="ILASM" Value=".method public hidebysig instance object GetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName)" />
2844       <MemberSignature Language="C#" Value="public object GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);" />
2845       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object GetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName) cil managed" />
2846       <MemberType>Method</MemberType>
2847       <AssemblyInfo>
2848         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2849         <AssemblyVersion>2.0.0.0</AssemblyVersion>
2850         <AssemblyVersion>4.0.0.0</AssemblyVersion>
2851       </AssemblyInfo>
2852       <ReturnValue>
2853         <ReturnType>System.Object</ReturnType>
2854       </ReturnValue>
2855       <Parameters>
2856         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
2857         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
2858       </Parameters>
2859       <Docs>
2860         <param name="optionLevel">To be added.</param>
2861         <param name="optionName">To be added.</param>
2862         <summary>
2863           <para>Retrieves an object containing the value of the specified socket option.</para>
2864         </summary>
2865         <returns>
2866           <para> The following table describes the values returned 
2867       by this method.</para>
2868           <list type="table">
2869             <listheader>
2870               <term>optionName</term>
2871               <description>Return value</description>
2872             </listheader>
2873             <item>
2874               <term>
2875                 <see langword="Linger" />
2876               </term>
2877               <description> An instance of the <see cref="T:System.Net.Sockets.LingerOption" qualify="true" />
2878    class.</description>
2879             </item>
2880             <item>
2881               <term>
2882                 <para>
2883                   <see langword="AddMembership" />
2884                 </para>
2885                 <para> -or-</para>
2886                 <para>
2887                   <see langword="DropMembership" />
2888                 </para>
2889               </term>
2890               <description> An instance of
2891    the <see cref="T:System.Net.Sockets.MulticastOption" qualify="true" />
2892    class.</description>
2893             </item>
2894             <item>
2895               <term> All other values defined in the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration.</term>
2896               <description>A <see cref="T:System.Int32" qualify="true" /> containing the value
2897 of the option.</description>
2898             </item>
2899           </list>
2900         </returns>
2901         <remarks>
2902           <para>Socket options determine the behavior of the
2903       current instance. </para>
2904           <para>
2905             <paramref name="optionLevel" /> and <paramref name="optionName" /> are not
2906    independent. See the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" />(<see langword="SocketOptionLevel" />,
2907 <see langword="SocketOptionName" />, <see langword="Int32" />) method for a listing of the values of the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration grouped
2908    by <see cref="T:System.Net.Sockets.SocketOptionLevel" />. </para>
2909         </remarks>
2910         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
2911         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
2912         <example>
2913           <para>The following example gets the state of the linger option and the size of the receive buffer, changes the values of both, then gets the new values.</para>
2914           <code lang="C#">using System;
2915 using System.Net.Sockets;
2916
2917 class OptionTest{
2918
2919   public static void Main() {
2920
2921     // Get the current option values.
2922     Socket someSocket =
2923       new Socket(AddressFamily.InterNetwork,
2924                  SocketType.Stream,
2925                  ProtocolType.Tcp);
2926
2927     LingerOption lingerOp =
2928       (LingerOption)someSocket.GetSocketOption(
2929                     SocketOptionLevel.Socket,
2930                     SocketOptionName.Linger);
2931
2932     int receiveBuffer =
2933       (int)someSocket.GetSocketOption(
2934            SocketOptionLevel.Socket,
2935            SocketOptionName.ReceiveBuffer);
2936
2937     Console.WriteLine(
2938       "Linger option is {0} and set to {1} seconds.",
2939       lingerOp.Enabled.ToString(),
2940       lingerOp.LingerTime.ToString() );
2941
2942     Console.WriteLine(
2943       "Size of the receive buffer is {0} bytes.",
2944       receiveBuffer.ToString() );
2945
2946     // Change the options.
2947     lingerOp = new LingerOption(true, 10);
2948     someSocket.SetSocketOption(
2949       SocketOptionLevel.Socket,
2950       SocketOptionName.Linger,
2951       lingerOp);
2952
2953     someSocket.SetSocketOption(
2954       SocketOptionLevel.Socket,
2955       SocketOptionName.ReceiveBuffer,
2956       2048);
2957
2958     Console.WriteLine(
2959       "The SetSocketOption method has been called.");
2960  
2961     // Get the new option values.
2962     lingerOp =
2963       (LingerOption)someSocket.GetSocketOption(
2964                     SocketOptionLevel.Socket,
2965                     SocketOptionName.Linger);
2966
2967     receiveBuffer =
2968       (int)someSocket.GetSocketOption(
2969            SocketOptionLevel.Socket,
2970            SocketOptionName.ReceiveBuffer);
2971
2972     Console.WriteLine(
2973       "Linger option is now {0} and set to {1} seconds.",
2974       lingerOp.Enabled.ToString(),
2975       lingerOp.LingerTime.ToString());
2976
2977     Console.WriteLine(
2978       "Size of the receive buffer is now {0} bytes.",
2979       receiveBuffer.ToString());
2980   }
2981 }
2982    </code>
2983           <para>The output is</para>
2984           <c>
2985             <para> Linger option is False and set to 0 seconds.</para>
2986             <para> Size of the receive buffer is 8192 bytes.</para>
2987             <para>The SetSocketOption method has been called.</para>
2988             <para> Linger option is now True and set to 10 seconds.</para>
2989             <para> Size of the receive buffer is now 2048 bytes.</para>
2990           </c>
2991         </example>
2992       </Docs>
2993       <Excluded>0</Excluded>
2994     </Member>
2995     <Member MemberName="GetSocketOption">
2996       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void GetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, class System.Byte[] optionValue)" />
2997       <MemberSignature Language="C#" Value="public void GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);" />
2998       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void GetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, unsigned int8[] optionValue) cil managed" />
2999       <MemberType>Method</MemberType>
3000       <AssemblyInfo>
3001         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3002         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3003         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3004       </AssemblyInfo>
3005       <ReturnValue>
3006         <ReturnType>System.Void</ReturnType>
3007       </ReturnValue>
3008       <Parameters>
3009         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
3010         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
3011         <Parameter Name="optionValue" Type="System.Byte[]" />
3012       </Parameters>
3013       <Docs>
3014         <param name="optionLevel">To be added.</param>
3015         <param name="optionName">To be added.</param>
3016         <param name="optionValue">To be added.</param>
3017         <summary>
3018           <para>Retrieves the value of the specified socket option.</para>
3019         </summary>
3020         <remarks>
3021           <para>Socket
3022       options determine the behavior of the current instance.</para>
3023           <para>Upon successful completion, the array specified by the <paramref name="optionValue" /> parameter contains the value of the
3024    specified socket option.</para>
3025           <para>When the length of the <paramref name="optionValue" /> array is smaller than the number of bytes required
3026 to store the value of the specified socket option, a <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown.</para>
3027         </remarks>
3028         <exception cref="T:System.Net.Sockets.SocketException">
3029           <para>
3030             <paramref name="optionValue" /> is too small to store the value of the specified socket option.</para>
3031           <para>-or-</para>
3032           <para>An error occurred while accessing the socket.</para>
3033           <para>
3034             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3035           </para>
3036         </exception>
3037         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3038       </Docs>
3039       <Excluded>0</Excluded>
3040     </Member>
3041     <Member MemberName="GetSocketOption">
3042       <MemberSignature Language="ILASM" Value=".method public hidebysig instance class System.Byte[] GetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, int32 optionLength)" />
3043       <MemberSignature Language="C#" Value="public byte[] GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int length);" />
3044       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] GetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, int32 length) cil managed" />
3045       <MemberType>Method</MemberType>
3046       <AssemblyInfo>
3047         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3048         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3049         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3050       </AssemblyInfo>
3051       <ReturnValue>
3052         <ReturnType>System.Byte[]</ReturnType>
3053       </ReturnValue>
3054       <Parameters>
3055         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
3056         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
3057         <Parameter Name="length" Type="System.Int32" />
3058       </Parameters>
3059       <Docs>
3060         <param name="optionLevel">To be added.</param>
3061         <param name="optionName">To be added.</param>
3062         <param name="length">To be added.</param>
3063         <summary>
3064           <para> Retrieves the value of the
3065       specified socket option.</para>
3066         </summary>
3067         <returns>
3068           <para> A <see cref="T:System.Byte" qualify="true" /> array containing the value of the specified socket option.</para>
3069         </returns>
3070         <remarks>
3071           <para> Socket options
3072       determine the behavior of the current instance.</para>
3073           <para>The <paramref name="optionLength" /> parameter
3074    is used to allocate an array to store the value of the specified option. When this value is smaller than the number of bytes required to store
3075    the value of the specified option, a <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown. When this value is
3076    greater than or equal to the number of bytes required to store the value of the
3077    specified option, the array returned by this
3078    method is allocated to be exactly the required length.</para>
3079         </remarks>
3080         <exception cref="T:System.Net.Sockets.SocketException">
3081           <para>
3082             <paramref name="optionLength" /> is smaller than the number of bytes required to store the value of the specified socket option.</para>
3083           <para>-or-</para>
3084           <para>An error occurred while accessing the socket.</para>
3085           <para>
3086             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3087           </para>
3088         </exception>
3089         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3090       </Docs>
3091       <Excluded>0</Excluded>
3092     </Member>
3093     <Member MemberName="Handle">
3094       <MemberSignature Language="ILASM" Value=".property valuetype System.IntPtr Handle { public hidebysig specialname instance valuetype System.IntPtr get_Handle() }" />
3095       <MemberSignature Language="C#" Value="public IntPtr Handle { get; }" />
3096       <MemberSignature Language="ILAsm" Value=".property instance native int Handle" />
3097       <MemberType>Property</MemberType>
3098       <AssemblyInfo>
3099         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3100         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3101         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3102       </AssemblyInfo>
3103       <ReturnValue>
3104         <ReturnType>System.IntPtr</ReturnType>
3105       </ReturnValue>
3106       <Parameters />
3107       <Docs>
3108         <summary>
3109           <para> Gets the operating system handle for the current instance.
3110       </para>
3111         </summary>
3112         <value>
3113           <para>A <see cref="T:System.IntPtr" qualify="true" /> containing the operating system handle for the current instance.</para>
3114         </value>
3115         <remarks>
3116           <para>This property is read-only.</para>
3117         </remarks>
3118         <permission cref="T:System.Security.Permissions.SecurityPermission"> Requires permission to access unmanaged code. See <see cref="F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode" qualify="true" />.</permission>
3119       </Docs>
3120       <Excluded>1</Excluded>
3121       <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>
3122     </Member>
3123     <Member MemberName="IOControl">
3124       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 IOControl(int32 ioControlCode, class System.Byte[] optionInValue, class System.Byte[] optionOutValue)" />
3125       <MemberSignature Language="C#" Value="public int IOControl (int ioctl_code, byte[] in_value, byte[] out_value);" />
3126       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 IOControl(int32 ioctl_code, unsigned int8[] in_value, unsigned int8[] out_value) cil managed" />
3127       <MemberType>Method</MemberType>
3128       <AssemblyInfo>
3129         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3130         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3131         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3132       </AssemblyInfo>
3133       <ReturnValue>
3134         <ReturnType>System.Int32</ReturnType>
3135       </ReturnValue>
3136       <Parameters>
3137         <Parameter Name="ioctl_code" Type="System.Int32" />
3138         <Parameter Name="in_value" Type="System.Byte[]" />
3139         <Parameter Name="out_value" Type="System.Byte[]" />
3140       </Parameters>
3141       <Docs>
3142         <param name="ioctl_code">To be added.</param>
3143         <param name="in_value">To be added.</param>
3144         <param name="out_value">To be added.</param>
3145         <summary>
3146           <para> Provides low-level access to the socket, the
3147       transport protocol, or the communications subsystem.</para>
3148         </summary>
3149         <returns>
3150           <para> A <see cref="T:System.Int32" qualify="true" /> containing the length of the
3151 <paramref name="optionOutValue" /> array after the method returns.</para>
3152         </returns>
3153         <remarks>
3154           <para>If an attempt is made to change the blocking mode of the current instance, an
3155       exception is thrown. Use the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property to change the
3156       blocking mode.</para>
3157           <para>
3158       The control codes and their requirements
3159       are implementation defined. Do not use
3160       this method if platform
3161       independence is a requirement.
3162       
3163       </para>
3164           <para>
3165             <block subset="none" type="note">
3166       
3167       Input data is not required for all control codes. Output data is not supplied
3168       by all control codes and, if not supplied, the return value is 0.
3169       
3170       </block>
3171           </para>
3172         </remarks>
3173         <exception cref="T:System.InvalidOperationException">
3174           <para>An attempt was made to change the blocking mode.</para>
3175           <block subset="none" type="note">
3176             <para>Use the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property to change the blocking mode.</para>
3177           </block>
3178         </exception>
3179         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
3180         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3181         <permission cref="T:System.Security.Permissions.SecurityPermission">Requires permission to access unmanaged code. See <see cref="F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode" qualify="true" />.</permission>
3182         <example>
3183           <para>The following example gets the number of bytes of available
3184       data to be read and writes the result to the console on a Windows system.
3185       The remote endpoint (remoteEndpoint) to connect to might need to be changed to a value that is valid on the current system.</para>
3186           <code lang="C#">using System;
3187 using System.Net;
3188 using System.Net.Sockets;
3189
3190 class App {
3191
3192   static void Main() {
3193
3194     IPAddress remoteAddress =
3195     Dns.Resolve(Dns.GetHostName()).AddressList[0];
3196
3197     IPEndPoint remoteEndpoint =
3198       new IPEndPoint(remoteAddress, 80);
3199
3200     Socket someSocket =
3201       new Socket(AddressFamily.InterNetwork,
3202                  SocketType.Stream,
3203                  ProtocolType.Tcp);
3204
3205     someSocket.Connect(remoteEndpoint);
3206
3207     int fionRead = 0x4004667F;
3208     byte[]inValue = {0x00, 0x00, 0x00, 0x00};
3209     byte[]outValue = {0x00, 0x00, 0x00, 0x00};
3210
3211     someSocket.IOControl(fionRead, inValue, outValue);
3212
3213     uint bytesAvail = BitConverter.ToUInt32(outValue, 0);
3214       
3215     Console.WriteLine(
3216       "There are {0} bytes available to be read.",
3217       bytesAvail.ToString() );
3218   }
3219 }
3220       </code>
3221           <para>The output is</para>
3222           <c>
3223             <para>There are 0 bytes available to be read.</para>
3224           </c>
3225         </example>
3226         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
3227       </Docs>
3228       <Excluded>0</Excluded>
3229     </Member>
3230     <Member MemberName="IOControl">
3231       <MemberSignature Language="C#" Value="public int IOControl (System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);" />
3232       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 IOControl(valuetype System.Net.Sockets.IOControlCode ioControlCode, unsigned int8[] optionInValue, unsigned int8[] optionOutValue) cil managed" />
3233       <MemberType>Method</MemberType>
3234       <AssemblyInfo>
3235         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3236         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3237       </AssemblyInfo>
3238       <ReturnValue>
3239         <ReturnType>System.Int32</ReturnType>
3240       </ReturnValue>
3241       <Parameters>
3242         <Parameter Name="ioControlCode" Type="System.Net.Sockets.IOControlCode" />
3243         <Parameter Name="optionInValue" Type="System.Byte[]" />
3244         <Parameter Name="optionOutValue" Type="System.Byte[]" />
3245       </Parameters>
3246       <Docs>
3247         <param name="ioControlCode">To be added.</param>
3248         <param name="optionInValue">To be added.</param>
3249         <param name="optionOutValue">To be added.</param>
3250         <summary>To be added.</summary>
3251         <returns>To be added.</returns>
3252         <remarks>To be added.</remarks>
3253       </Docs>
3254     </Member>
3255     <Member MemberName="IsBound">
3256       <MemberSignature Language="C#" Value="public bool IsBound { get; }" />
3257       <MemberSignature Language="ILAsm" Value=".property instance bool IsBound" />
3258       <MemberType>Property</MemberType>
3259       <AssemblyInfo>
3260         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3261         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3262       </AssemblyInfo>
3263       <ReturnValue>
3264         <ReturnType>System.Boolean</ReturnType>
3265       </ReturnValue>
3266       <Docs>
3267         <summary>To be added.</summary>
3268         <value>To be added.</value>
3269         <remarks>To be added.</remarks>
3270       </Docs>
3271     </Member>
3272     <Member MemberName="LingerState">
3273       <MemberSignature Language="C#" Value="public System.Net.Sockets.LingerOption LingerState { get; set; }" />
3274       <MemberSignature Language="ILAsm" Value=".property instance class System.Net.Sockets.LingerOption LingerState" />
3275       <MemberType>Property</MemberType>
3276       <AssemblyInfo>
3277         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3278         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3279       </AssemblyInfo>
3280       <ReturnValue>
3281         <ReturnType>System.Net.Sockets.LingerOption</ReturnType>
3282       </ReturnValue>
3283       <Docs>
3284         <summary>To be added.</summary>
3285         <value>To be added.</value>
3286         <remarks>To be added.</remarks>
3287       </Docs>
3288     </Member>
3289     <Member MemberName="Listen">
3290       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void Listen(int32 backlog)" />
3291       <MemberSignature Language="C#" Value="public void Listen (int backlog);" />
3292       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Listen(int32 backlog) cil managed" />
3293       <MemberType>Method</MemberType>
3294       <AssemblyInfo>
3295         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3296         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3297         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3298       </AssemblyInfo>
3299       <ReturnValue>
3300         <ReturnType>System.Void</ReturnType>
3301       </ReturnValue>
3302       <Parameters>
3303         <Parameter Name="backlog" Type="System.Int32" />
3304       </Parameters>
3305       <Docs>
3306         <param name="backlog">A <see cref="T:System.Int32" qualify="true" /> containing the maximum length of the queue of pending connections.</param>
3307         <summary>
3308           <para>Places the current instance into the listening
3309       state where it waits for incoming connection requests.</para>
3310         </summary>
3311         <remarks>
3312           <para> Once this method is called, incoming connection requests
3313       are placed in a queue. The maximum size of the queue is specified by the
3314       <paramref name="backlog" /> parameter. The size of the queue is limited to legal
3315       values by the underlying protocol. Illegal values of the <paramref name="backlog" />
3316       parameter are replaced with a legal value, which is implementation defined.</para>
3317           <para>If a connection request arrives and the queue is full, a <see cref="T:System.Net.Sockets.SocketException" /> is thrown on the client.</para>
3318           <para> A socket in the listening state has no
3319    remote endpoint associated with it. Attempting to access the <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> property throws a <see cref="T:System.Net.Sockets.SocketException" /> exception.</para>
3320           <para> This method is ignored if called more than once on the
3321    current instance.</para>
3322           <block subset="none" type="note">
3323             <para>This method is used
3324       only on the server-side of connection-oriented protocols. Call the <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> method before
3325       this method is called the first time. Call the <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> method before the first call to the <see cref="M:System.Net.Sockets.Socket.Accept" />
3326       method.</para>
3327           </block>
3328         </remarks>
3329         <exception cref="T:System.Net.Sockets.SocketException">The <see cref="P:System.Net.Sockets.Socket.Connected" /> property of the current instance is true.<para>-or-</para><see langword="Bind" /> has not been called on the current instance.<para>-or-</para>An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
3330         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3331       </Docs>
3332       <Excluded>0</Excluded>
3333     </Member>
3334     <Member MemberName="LocalEndPoint">
3335       <MemberSignature Language="ILASM" Value=".property class System.Net.EndPoint LocalEndPoint { public hidebysig specialname instance class System.Net.EndPoint get_LocalEndPoint() }" />
3336       <MemberSignature Language="C#" Value="public System.Net.EndPoint LocalEndPoint { get; }" />
3337       <MemberSignature Language="ILAsm" Value=".property instance class System.Net.EndPoint LocalEndPoint" />
3338       <MemberType>Property</MemberType>
3339       <AssemblyInfo>
3340         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3341         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3342         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3343       </AssemblyInfo>
3344       <ReturnValue>
3345         <ReturnType>System.Net.EndPoint</ReturnType>
3346       </ReturnValue>
3347       <Parameters />
3348       <Docs>
3349         <summary>
3350           <para> Gets the local endpoint associated with the current instance.
3351       </para>
3352         </summary>
3353         <value>
3354           <para> The local <see cref="T:System.Net.EndPoint" qualify="true" />
3355 associated with the current
3356 instance.</para>
3357         </value>
3358         <remarks>
3359           <para> This property is read-only. </para>
3360           <para>This property contains the network connection information for the
3361       current instance. </para>
3362           <para>
3363             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and
3364 <see cref="M:System.Net.Sockets.Socket.Accept" /> methods, 
3365    and their
3366    asynchronous counterparts set this property. If not previously set,
3367    the <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" /> methods, and their asynchronous counterparts set this property.
3368 </block>
3369           </para>
3370         </remarks>
3371         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
3372         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3373       </Docs>
3374       <Excluded>0</Excluded>
3375     </Member>
3376     <Member MemberName="MulticastLoopback">
3377       <MemberSignature Language="C#" Value="public bool MulticastLoopback { get; set; }" />
3378       <MemberSignature Language="ILAsm" Value=".property instance bool MulticastLoopback" />
3379       <MemberType>Property</MemberType>
3380       <AssemblyInfo>
3381         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3382         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3383       </AssemblyInfo>
3384       <ReturnValue>
3385         <ReturnType>System.Boolean</ReturnType>
3386       </ReturnValue>
3387       <Docs>
3388         <summary>To be added.</summary>
3389         <value>To be added.</value>
3390         <remarks>To be added.</remarks>
3391       </Docs>
3392     </Member>
3393     <Member MemberName="NoDelay">
3394       <MemberSignature Language="C#" Value="public bool NoDelay { get; set; }" />
3395       <MemberSignature Language="ILAsm" Value=".property instance bool NoDelay" />
3396       <MemberType>Property</MemberType>
3397       <AssemblyInfo>
3398         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3399         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3400       </AssemblyInfo>
3401       <ReturnValue>
3402         <ReturnType>System.Boolean</ReturnType>
3403       </ReturnValue>
3404       <Docs>
3405         <summary>To be added.</summary>
3406         <value>To be added.</value>
3407         <remarks>To be added.</remarks>
3408       </Docs>
3409     </Member>
3410     <Member MemberName="OSSupportsIPv6">
3411       <MemberSignature Language="C#" Value="public static bool OSSupportsIPv6 { get; }" />
3412       <MemberSignature Language="ILAsm" Value=".property bool OSSupportsIPv6" />
3413       <MemberType>Property</MemberType>
3414       <AssemblyInfo>
3415         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3416         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3417       </AssemblyInfo>
3418       <ReturnValue>
3419         <ReturnType>System.Boolean</ReturnType>
3420       </ReturnValue>
3421       <Docs>
3422         <summary>To be added.</summary>
3423         <value>To be added.</value>
3424         <remarks>To be added.</remarks>
3425       </Docs>
3426     </Member>
3427     <Member MemberName="Poll">
3428       <MemberSignature Language="ILASM" Value=".method public hidebysig instance bool Poll(int32 microSeconds, valuetype System.Net.Sockets.SelectMode mode)" />
3429       <MemberSignature Language="C#" Value="public bool Poll (int time_us, System.Net.Sockets.SelectMode mode);" />
3430       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Poll(int32 time_us, valuetype System.Net.Sockets.SelectMode mode) cil managed" />
3431       <MemberType>Method</MemberType>
3432       <AssemblyInfo>
3433         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3434         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3435         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3436       </AssemblyInfo>
3437       <ReturnValue>
3438         <ReturnType>System.Boolean</ReturnType>
3439       </ReturnValue>
3440       <Parameters>
3441         <Parameter Name="time_us" Type="System.Int32" />
3442         <Parameter Name="mode" Type="System.Net.Sockets.SelectMode" />
3443       </Parameters>
3444       <Docs>
3445         <param name="time_us">To be added.</param>
3446         <param name="mode">One of the values defined in the <see cref="T:System.Net.Sockets.SelectMode" /> enumeration.</param>
3447         <summary>
3448           <para>Determines the read, write, or error status of the current instance.</para>
3449         </summary>
3450         <returns>
3451           <para>A <see cref="T:System.Boolean" qualify="true" /> where <see langword="true" /> indicates the current instance
3452    satisfies at least one of the conditions in the following table
3453    corresponding to the specified <see cref="T:System.Net.Sockets.SelectMode" />
3454    value; otherwise, <see langword="false" />. <see langword="false" /> is returned if the status of the current instance cannot be determined within the time specified by <paramref name="microSeconds" /> . </para>
3455           <list type="table">
3456             <listheader>
3457               <term>SelectMode value</term>
3458               <description> Condition</description>
3459             </listheader>
3460             <item>
3461               <term> SelectRead</term>
3462               <description>
3463                 <para> Data is available for reading (includes
3464             out-of-band data if the <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" /> value defined in
3465             the <see cref="T:System.Net.Sockets.SocketOptionName" />
3466             enumeration
3467             is set).</para>
3468                 <para>-or-</para>
3469                 <para>The socket is in the listening state with a
3470             pending connection, and
3471             the <see cref="M:System.Net.Sockets.Socket.Accept" /> method has been called and is guaranteed to succeed without
3472             blocking.</para>
3473                 <para>-or-</para>
3474                 <para> The connection has been closed, reset,
3475             or terminated.</para>
3476               </description>
3477             </item>
3478             <item>
3479               <term> SelectWrite</term>
3480               <description>
3481                 <para>Data can be sent.</para>
3482                 <para>-or-</para>
3483                 <para> A non-blocking <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> method is being processed and the connection has
3484             succeeded.</para>
3485               </description>
3486             </item>
3487             <item>
3488               <term> SelectError</term>
3489               <description>
3490                 <para>The <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" /> value defined in
3491             the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration is not set
3492             and out-of-band data is available.</para>
3493                 <para>-or-</para>
3494                 <para> A non-blocking <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" />
3495       method is being processed and the connection has
3496       failed.</para>
3497               </description>
3498             </item>
3499           </list>
3500         </returns>
3501         <remarks>To be added.</remarks>
3502         <exception cref="T:System.NotSupportedException">
3503           <paramref name="mode " />is not one of the values defined in the <see cref="T:System.Net.Sockets.SelectMode" /> enumeration.</exception>
3504         <exception cref="T:System.Net.Sockets.SocketException">
3505           <para>An error occurred while accessing the socket. </para>
3506           <para>
3507             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3508           </para>
3509         </exception>
3510         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3511       </Docs>
3512       <Excluded>0</Excluded>
3513     </Member>
3514     <Member MemberName="ProtocolType">
3515       <MemberSignature Language="ILASM" Value=".property valuetype System.Net.Sockets.ProtocolType ProtocolType { public hidebysig specialname instance valuetype System.Net.Sockets.ProtocolType get_ProtocolType() }" />
3516       <MemberSignature Language="C#" Value="public System.Net.Sockets.ProtocolType ProtocolType { get; }" />
3517       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Net.Sockets.ProtocolType ProtocolType" />
3518       <MemberType>Property</MemberType>
3519       <AssemblyInfo>
3520         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3521         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3522         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3523       </AssemblyInfo>
3524       <ReturnValue>
3525         <ReturnType>System.Net.Sockets.ProtocolType</ReturnType>
3526       </ReturnValue>
3527       <Parameters />
3528       <Docs>
3529         <summary>
3530           <para> Gets the protocol type of the current instance.
3531       </para>
3532         </summary>
3533         <value>
3534           <para>One of the values defined in
3535       the <see cref="T:System.Net.Sockets.ProtocolType" /> enumeration. </para>
3536         </value>
3537         <remarks>
3538           <para>This property is read-only.</para>
3539           <para>This property is set by the constructor for the current instance. The value of
3540       this property specifies the protocol used by the current instance.</para>
3541         </remarks>
3542       </Docs>
3543       <Excluded>0</Excluded>
3544     </Member>
3545     <Member MemberName="Receive">
3546       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Receive(class System.Byte[] buffer)" />
3547       <MemberSignature Language="C#" Value="public int Receive (byte[] buffer);" />
3548       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(unsigned int8[] buffer) cil managed" />
3549       <MemberType>Method</MemberType>
3550       <AssemblyInfo>
3551         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3552         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3553         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3554       </AssemblyInfo>
3555       <ReturnValue>
3556         <ReturnType>System.Int32</ReturnType>
3557       </ReturnValue>
3558       <Parameters>
3559         <Parameter Name="buffer" Type="System.Byte[]" />
3560       </Parameters>
3561       <Docs>
3562         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array to store data received from the socket.</param>
3563         <summary>
3564           <para> Receives data from a socket.</para>
3565         </summary>
3566         <returns>
3567           <para>A <see cref="T:System.Int32" qualify="true" />
3568 containing the number of bytes received.</para>
3569         </returns>
3570         <remarks>
3571           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />(<paramref name="buffer" />, 0, <paramref name="buffer" />.Length,
3572 <see cref="F:System.Net.Sockets.SocketFlags.None" qualify="true" />).</para>
3573         </remarks>
3574         <exception cref="T:System.ArgumentNullException">
3575           <paramref name="buffer " />is <see langword="null" />.</exception>
3576         <exception cref="T:System.InvalidOperationException">
3577           <para>An asynchronous call is pending and a blocking method has been called.</para>
3578         </exception>
3579         <exception cref="T:System.Net.Sockets.SocketException">
3580           <para>An error occurred while accessing the socket.</para>
3581           <para>
3582             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3583           </para>
3584         </exception>
3585         <exception cref="T:System.Security.SecurityException"> A caller in the call stack does not have the required permissions.</exception>
3586         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3587         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</permission>
3588       </Docs>
3589       <Excluded>0</Excluded>
3590     </Member>
3591     <Member MemberName="Receive">
3592       <MemberSignature Language="C#" Value="public int Receive (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers);" />
3593       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers) cil managed" />
3594       <MemberType>Method</MemberType>
3595       <AssemblyInfo>
3596         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3597         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3598       </AssemblyInfo>
3599       <ReturnValue>
3600         <ReturnType>System.Int32</ReturnType>
3601       </ReturnValue>
3602       <Parameters>
3603         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
3604       </Parameters>
3605       <Docs>
3606         <param name="buffers">To be added.</param>
3607         <summary>To be added.</summary>
3608         <returns>To be added.</returns>
3609         <remarks>To be added.</remarks>
3610       </Docs>
3611     </Member>
3612     <Member MemberName="Receive">
3613       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Receive(class System.Byte[] buffer, valuetype System.Net.Sockets.SocketFlags socketFlags)" />
3614       <MemberSignature Language="C#" Value="public int Receive (byte[] buffer, System.Net.Sockets.SocketFlags flags);" />
3615       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(unsigned int8[] buffer, valuetype System.Net.Sockets.SocketFlags flags) cil managed" />
3616       <MemberType>Method</MemberType>
3617       <AssemblyInfo>
3618         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3619         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3620         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3621       </AssemblyInfo>
3622       <ReturnValue>
3623         <ReturnType>System.Int32</ReturnType>
3624       </ReturnValue>
3625       <Parameters>
3626         <Parameter Name="buffer" Type="System.Byte[]" />
3627         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
3628       </Parameters>
3629       <Docs>
3630         <param name="buffer">To be added.</param>
3631         <param name="flags">To be added.</param>
3632         <summary>
3633           <para> Receives data from a
3634       socket.</para>
3635         </summary>
3636         <returns>
3637           <para>A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes received.</para>
3638         </returns>
3639         <remarks>
3640           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />(<paramref name="buffer" />, 0, <paramref name="buffer" />.Length,
3641 <paramref name="socketFlags" />).</para>
3642         </remarks>
3643         <exception cref="T:System.ArgumentNullException">
3644           <paramref name="buffer " />is <see langword="null" />.</exception>
3645         <exception cref="T:System.InvalidOperationException">
3646           <para>An asynchronous call is pending and a blocking method has been called.</para>
3647         </exception>
3648         <exception cref="T:System.Net.Sockets.SocketException">
3649           <para>
3650             <paramref name="socketFlags" /> is not a valid combination of values.</para>
3651           <para>-or-</para>
3652           <para> An error occurred while accessing the socket. </para>
3653           <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3654         </exception>
3655         <exception cref="T:System.Security.SecurityException"> A caller in the call stack does not have the required permissions.</exception>
3656         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3657         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections. <block subset="none" type="note">See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</block></permission>
3658       </Docs>
3659       <Excluded>0</Excluded>
3660     </Member>
3661     <Member MemberName="Receive">
3662       <MemberSignature Language="C#" Value="public int Receive (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags);" />
3663       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags) cil managed" />
3664       <MemberType>Method</MemberType>
3665       <AssemblyInfo>
3666         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3667         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3668       </AssemblyInfo>
3669       <Attributes>
3670         <Attribute>
3671           <AttributeName>System.CLSCompliant(false)</AttributeName>
3672         </Attribute>
3673       </Attributes>
3674       <ReturnValue>
3675         <ReturnType>System.Int32</ReturnType>
3676       </ReturnValue>
3677       <Parameters>
3678         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
3679         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
3680       </Parameters>
3681       <Docs>
3682         <param name="buffers">To be added.</param>
3683         <param name="socketFlags">To be added.</param>
3684         <summary>To be added.</summary>
3685         <returns>To be added.</returns>
3686         <remarks>To be added.</remarks>
3687       </Docs>
3688     </Member>
3689     <Member MemberName="Receive">
3690       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Receive(class System.Byte[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags)" />
3691       <MemberSignature Language="C#" Value="public int Receive (byte[] buffer, int size, System.Net.Sockets.SocketFlags flags);" />
3692       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(unsigned int8[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags flags) cil managed" />
3693       <MemberType>Method</MemberType>
3694       <AssemblyInfo>
3695         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3696         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3697         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3698       </AssemblyInfo>
3699       <ReturnValue>
3700         <ReturnType>System.Int32</ReturnType>
3701       </ReturnValue>
3702       <Parameters>
3703         <Parameter Name="buffer" Type="System.Byte[]" />
3704         <Parameter Name="size" Type="System.Int32" />
3705         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
3706       </Parameters>
3707       <Docs>
3708         <param name="buffer">To be added.</param>
3709         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to receive.</param>
3710         <param name="flags">To be added.</param>
3711         <summary>
3712           <para> Receives data from a socket.</para>
3713         </summary>
3714         <returns>
3715           <para>A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes received.</para>
3716         </returns>
3717         <remarks>
3718           <para> This method is equivalent to <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />(<paramref name="buffer" />, 0, <paramref name="size" />,
3719 <paramref name="socketFlags" />).</para>
3720         </remarks>
3721         <exception cref="T:System.ArgumentNullException">
3722           <paramref name="buffer " />is <see langword="null" />.</exception>
3723         <exception cref="T:System.ArgumentOutOfRangeException">
3724           <para>
3725             <paramref name="size" /> &lt; 0.</para>
3726           <para> -or-</para>
3727           <para>
3728             <paramref name="size" /> &gt; <paramref name="buffer" />.Length.</para>
3729         </exception>
3730         <exception cref="T:System.InvalidOperationException">
3731           <para>An asynchronous call is pending and a blocking method has been called.</para>
3732         </exception>
3733         <exception cref="T:System.Net.Sockets.SocketException">
3734           <para>
3735             <paramref name="socketFlags" /> is not a valid combination of values.</para>
3736           <para> -or- </para>
3737           <para> An error occurred while accessing the socket. </para>
3738           <para>
3739             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3740           </para>
3741         </exception>
3742         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
3743         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3744         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</permission>
3745       </Docs>
3746       <Excluded>0</Excluded>
3747     </Member>
3748     <Member MemberName="Receive">
3749       <MemberSignature Language="C#" Value="public int Receive (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);" />
3750       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags, valuetype System.Net.Sockets.SocketError errorCode) cil managed" />
3751       <MemberType>Method</MemberType>
3752       <AssemblyInfo>
3753         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3754         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3755       </AssemblyInfo>
3756       <Attributes>
3757         <Attribute>
3758           <AttributeName>System.CLSCompliant(false)</AttributeName>
3759         </Attribute>
3760       </Attributes>
3761       <ReturnValue>
3762         <ReturnType>System.Int32</ReturnType>
3763       </ReturnValue>
3764       <Parameters>
3765         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
3766         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
3767         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
3768       </Parameters>
3769       <Docs>
3770         <param name="buffers">To be added.</param>
3771         <param name="socketFlags">To be added.</param>
3772         <param name="errorCode">To be added.</param>
3773         <summary>To be added.</summary>
3774         <returns>To be added.</returns>
3775         <remarks>To be added.</remarks>
3776       </Docs>
3777     </Member>
3778     <Member MemberName="Receive">
3779       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Receive(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags)" />
3780       <MemberSignature Language="C#" Value="public int Receive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags);" />
3781       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags) cil managed" />
3782       <MemberType>Method</MemberType>
3783       <AssemblyInfo>
3784         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3785         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3786         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3787       </AssemblyInfo>
3788       <ReturnValue>
3789         <ReturnType>System.Int32</ReturnType>
3790       </ReturnValue>
3791       <Parameters>
3792         <Parameter Name="buffer" Type="System.Byte[]" />
3793         <Parameter Name="offset" Type="System.Int32" />
3794         <Parameter Name="size" Type="System.Int32" />
3795         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
3796       </Parameters>
3797       <Docs>
3798         <param name="buffer">To be added.</param>
3799         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> containing the zero-based position in <paramref name="buffer " />to begin storing the received data.</param>
3800         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to receive.</param>
3801         <param name="flags">To be added.</param>
3802         <summary>
3803           <para> Receives data from a socket.</para>
3804         </summary>
3805         <returns>
3806           <para>A <see cref="T:System.Int32" qualify="true" />
3807 containing the number of bytes received.</para>
3808         </returns>
3809         <remarks>
3810           <para>The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property is required to be set before 
3811    this method
3812    is called.</para>
3813           <para>The <see cref="P:System.Net.Sockets.Socket.Blocking" /> property of the socket determines
3814 the behavior of this method when no incoming data is available. When
3815 <see langword="false" />, the <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown. When 
3816 <see langword="true" />, this method blocks and 
3817 waits for data
3818 to arrive.</para>
3819           <para> For <see cref="F:System.Net.Sockets.SocketType.Stream" qualify="true" /> socket types, if the remote socket
3820 was shut down gracefully, and all data was received, this method immediately returns zero,
3821 regardless of the blocking state.</para>
3822           <para>For message-oriented sockets, if the message is larger than the size of
3823 <paramref name="buffer" />, the buffer is filled with the first part of the message, and the 
3824 <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown. For unreliable 
3825    protocols, the excess data is lost; for reliable protocols, the data is retained
3826    by the service provider.</para>
3827           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.OutOfBand" /> flag is
3828 specified as part of the <paramref name="socketFlags" /> parameter and the socket is configured for in-line reception of
3829 out-of-band (OOB) data (using the <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" /> socket option) and OOB data is available,
3830 only OOB data is returned.</para>
3831           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.Peek" /> flag is specified as part of the
3832 <paramref name="socketFlags" /> parameter, available data is copied into 
3833 <paramref name="buffer" /> but is not removed from the system
3834 buffer.</para>
3835         </remarks>
3836         <exception cref="T:System.ArgumentNullException">
3837           <paramref name="buffer " />is <see langword="null" />.</exception>
3838         <exception cref="T:System.ArgumentOutOfRangeException">
3839           <para>
3840             <paramref name="offset" /> &lt; 0.</para>
3841           <para>-or-</para>
3842           <para>
3843             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
3844           <para>-or-</para>
3845           <para>
3846             <paramref name="size" /> &lt; 0.</para>
3847           <para>-or-</para>
3848           <para>
3849             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
3850         </exception>
3851         <exception cref="T:System.InvalidOperationException">
3852           <para>An asynchronous call is pending and a blocking method has been called.</para>
3853         </exception>
3854         <exception cref="T:System.Net.Sockets.SocketException">
3855           <para>
3856             <paramref name="socketFlags" /> is not a valid combination of values.</para>
3857           <para>-or-</para>
3858           <para>The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.</para>
3859           <para>-or-</para>
3860           <para>An error occurred while accessing the socket.</para>
3861           <para>
3862             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
3863           </para>
3864         </exception>
3865         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
3866         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3867         <permission cref="T:System.Net.SocketPermission">
3868           <para>Requires permission to accept a connection on the endpoint defined by the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property of the current instance. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</para>
3869         </permission>
3870       </Docs>
3871       <Excluded>0</Excluded>
3872     </Member>
3873     <Member MemberName="Receive">
3874       <MemberSignature Language="C#" Value="public int Receive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error);" />
3875       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Receive(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags, valuetype System.Net.Sockets.SocketError error) cil managed" />
3876       <MemberType>Method</MemberType>
3877       <AssemblyInfo>
3878         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3879         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3880       </AssemblyInfo>
3881       <ReturnValue>
3882         <ReturnType>System.Int32</ReturnType>
3883       </ReturnValue>
3884       <Parameters>
3885         <Parameter Name="buffer" Type="System.Byte[]" />
3886         <Parameter Name="offset" Type="System.Int32" />
3887         <Parameter Name="size" Type="System.Int32" />
3888         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
3889         <Parameter Name="error" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
3890       </Parameters>
3891       <Docs>
3892         <param name="buffer">To be added.</param>
3893         <param name="offset">To be added.</param>
3894         <param name="size">To be added.</param>
3895         <param name="flags">To be added.</param>
3896         <param name="error">To be added.</param>
3897         <summary>To be added.</summary>
3898         <returns>To be added.</returns>
3899         <remarks>To be added.</remarks>
3900       </Docs>
3901     </Member>
3902     <Member MemberName="ReceiveAsync">
3903       <MemberSignature Language="C#" Value="public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
3904       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ReceiveAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
3905       <MemberType>Method</MemberType>
3906       <AssemblyInfo>
3907         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3908         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3909       </AssemblyInfo>
3910       <ReturnValue>
3911         <ReturnType>System.Boolean</ReturnType>
3912       </ReturnValue>
3913       <Parameters>
3914         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
3915       </Parameters>
3916       <Docs>
3917         <param name="e">To be added.</param>
3918         <summary>To be added.</summary>
3919         <returns>To be added.</returns>
3920         <remarks>To be added.</remarks>
3921       </Docs>
3922     </Member>
3923     <Member MemberName="ReceiveBufferSize">
3924       <MemberSignature Language="C#" Value="public int ReceiveBufferSize { get; set; }" />
3925       <MemberSignature Language="ILAsm" Value=".property instance int32 ReceiveBufferSize" />
3926       <MemberType>Property</MemberType>
3927       <AssemblyInfo>
3928         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3929         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3930       </AssemblyInfo>
3931       <ReturnValue>
3932         <ReturnType>System.Int32</ReturnType>
3933       </ReturnValue>
3934       <Docs>
3935         <summary>To be added.</summary>
3936         <value>To be added.</value>
3937         <remarks>To be added.</remarks>
3938       </Docs>
3939     </Member>
3940     <Member MemberName="ReceiveFrom">
3941       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 ReceiveFrom(class System.Byte[] buffer, class System.Net.EndPoint&amp; remoteEP)" />
3942       <MemberSignature Language="C#" Value="public int ReceiveFrom (byte[] buffer, ref System.Net.EndPoint remoteEP);" />
3943       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 ReceiveFrom(unsigned int8[] buffer, class System.Net.EndPoint remoteEP) cil managed" />
3944       <MemberType>Method</MemberType>
3945       <AssemblyInfo>
3946         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3947         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3948         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3949       </AssemblyInfo>
3950       <ReturnValue>
3951         <ReturnType>System.Int32</ReturnType>
3952       </ReturnValue>
3953       <Parameters>
3954         <Parameter Name="buffer" Type="System.Byte[]" />
3955         <Parameter Name="remoteEP" Type="System.Net.EndPoint&amp;" RefType="ref" />
3956       </Parameters>
3957       <Docs>
3958         <param name="buffer">To be added.</param>
3959         <param name="remoteEP">To be added.</param>
3960         <summary>
3961           <para> Receives data from a socket and, for connectionless protocols, stores the
3962       endpoint associated with the socket that sent the data.</para>
3963         </summary>
3964         <returns>
3965           <para>A <see cref="T:System.Int32" qualify="true" />
3966 containing the number of bytes received.</para>
3967         </returns>
3968         <remarks>
3969           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)" />(<paramref name="buffer" />, 0, <paramref name="buffer" />.Length,
3970 <see cref="F:System.Net.Sockets.SocketFlags.None" qualify="true" />, <paramref name="remoteEP" />).</para>
3971         </remarks>
3972         <exception cref="T:System.ArgumentNullException">
3973           <para>
3974             <paramref name="buffer" /> or <paramref name="remoteEP" /> is <see langword="null" />.</para>
3975         </exception>
3976         <exception cref="T:System.InvalidOperationException">
3977           <para>An asynchronous call is pending and a blocking method has been called.</para>
3978         </exception>
3979         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
3980         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
3981         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections from the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</permission>
3982       </Docs>
3983       <Excluded>0</Excluded>
3984     </Member>
3985     <Member MemberName="ReceiveFrom">
3986       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 ReceiveFrom(class System.Byte[] buffer, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint&amp; remoteEP)" />
3987       <MemberSignature Language="C#" Value="public int ReceiveFrom (byte[] buffer, System.Net.Sockets.SocketFlags flags, ref System.Net.EndPoint remoteEP);" />
3988       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 ReceiveFrom(unsigned int8[] buffer, valuetype System.Net.Sockets.SocketFlags flags, class System.Net.EndPoint remoteEP) cil managed" />
3989       <MemberType>Method</MemberType>
3990       <AssemblyInfo>
3991         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
3992         <AssemblyVersion>2.0.0.0</AssemblyVersion>
3993         <AssemblyVersion>4.0.0.0</AssemblyVersion>
3994       </AssemblyInfo>
3995       <ReturnValue>
3996         <ReturnType>System.Int32</ReturnType>
3997       </ReturnValue>
3998       <Parameters>
3999         <Parameter Name="buffer" Type="System.Byte[]" />
4000         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4001         <Parameter Name="remoteEP" Type="System.Net.EndPoint&amp;" RefType="ref" />
4002       </Parameters>
4003       <Docs>
4004         <param name="buffer">To be added.</param>
4005         <param name="flags">To be added.</param>
4006         <param name="remoteEP">To be added.</param>
4007         <summary>
4008           <para> Receives data from a socket and, for connectionless protocols, stores the
4009       endpoint associated with the socket that sent the data.</para>
4010         </summary>
4011         <returns>
4012           <para>A <see cref="T:System.Int32" qualify="true" />
4013 containing the number of bytes received.</para>
4014         </returns>
4015         <remarks>
4016           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)" />(<paramref name="buffer" />, 0, <paramref name="buffer" />.Length, <paramref name="socketFlags" />, <paramref name="remoteEP" />).</para>
4017         </remarks>
4018         <exception cref="T:System.ArgumentNullException">
4019           <para>
4020             <paramref name="buffer" /> or <paramref name="remoteEP" /> is <see langword="null" />.</para>
4021         </exception>
4022         <exception cref="T:System.InvalidOperationException">
4023           <para>An asynchronous call is pending and a blocking method has been called.</para>
4024         </exception>
4025         <exception cref="T:System.Net.Sockets.SocketException">
4026           <para>
4027             <paramref name="socketFlags" /> specified an invalid value.</para>
4028           <para>-or-</para>
4029           <para>An error occurred while accessing the socket. </para>
4030           <para>
4031             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4032           </para>
4033         </exception>
4034         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
4035         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4036         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections from the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</permission>
4037       </Docs>
4038       <Excluded>0</Excluded>
4039     </Member>
4040     <Member MemberName="ReceiveFrom">
4041       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 ReceiveFrom(class System.Byte[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint&amp; remoteEP)" />
4042       <MemberSignature Language="C#" Value="public int ReceiveFrom (byte[] buffer, int size, System.Net.Sockets.SocketFlags flags, ref System.Net.EndPoint remoteEP);" />
4043       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 ReceiveFrom(unsigned int8[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags flags, class System.Net.EndPoint remoteEP) cil managed" />
4044       <MemberType>Method</MemberType>
4045       <AssemblyInfo>
4046         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4047         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4048         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4049       </AssemblyInfo>
4050       <ReturnValue>
4051         <ReturnType>System.Int32</ReturnType>
4052       </ReturnValue>
4053       <Parameters>
4054         <Parameter Name="buffer" Type="System.Byte[]" />
4055         <Parameter Name="size" Type="System.Int32" />
4056         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4057         <Parameter Name="remoteEP" Type="System.Net.EndPoint&amp;" RefType="ref" />
4058       </Parameters>
4059       <Docs>
4060         <param name="buffer">To be added.</param>
4061         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to receive.</param>
4062         <param name="flags">To be added.</param>
4063         <param name="remoteEP">To be added.</param>
4064         <summary>
4065           <para> Receives data from a socket and, for connectionless protocols, stores the
4066       endpoint associated with the socket that sent the data.</para>
4067         </summary>
4068         <returns>
4069           <para>A <see cref="T:System.Int32" qualify="true" />
4070 containing the number of bytes received.</para>
4071         </returns>
4072         <remarks>
4073           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)" />(<paramref name="buffer" />, 0, <paramref name="size" /> , <paramref name="socketFlags" />, <paramref name="remoteEP" /> ).</para>
4074         </remarks>
4075         <exception cref="T:System.ArgumentNullException">
4076           <para>
4077             <paramref name="buffer" /> or <paramref name="remoteEP" /> is <see langword="null" />.</para>
4078         </exception>
4079         <exception cref="T:System.ArgumentOutOfRangeException">
4080           <para>
4081             <paramref name="size" /> &lt; 0.</para>
4082           <para> -or-</para>
4083           <para>
4084             <paramref name="size" /> &gt; <paramref name="buffer" />.Length.</para>
4085         </exception>
4086         <exception cref="T:System.InvalidOperationException">
4087           <para>An asynchronous call is pending and a blocking method has been called.</para>
4088         </exception>
4089         <exception cref="T:System.Net.Sockets.SocketException">
4090           <para>
4091             <paramref name="socketFlags" /> is not a valid combination of values.</para>
4092           <para>-or-</para>
4093           <para>An error occurred while accessing the socket.</para>
4094           <para>
4095             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4096           </para>
4097         </exception>
4098         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
4099         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4100         <permission cref="T:System.Net.SocketPermission">Requires permission to accept connections from the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</permission>
4101       </Docs>
4102       <Excluded>0</Excluded>
4103     </Member>
4104     <Member MemberName="ReceiveFrom">
4105       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 ReceiveFrom(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint&amp; remoteEP)" />
4106       <MemberSignature Language="C#" Value="public int ReceiveFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, ref System.Net.EndPoint remoteEP);" />
4107       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 ReceiveFrom(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags, class System.Net.EndPoint remoteEP) cil managed" />
4108       <MemberType>Method</MemberType>
4109       <AssemblyInfo>
4110         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4111         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4112         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4113       </AssemblyInfo>
4114       <ReturnValue>
4115         <ReturnType>System.Int32</ReturnType>
4116       </ReturnValue>
4117       <Parameters>
4118         <Parameter Name="buffer" Type="System.Byte[]" />
4119         <Parameter Name="offset" Type="System.Int32" />
4120         <Parameter Name="size" Type="System.Int32" />
4121         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4122         <Parameter Name="remoteEP" Type="System.Net.EndPoint&amp;" RefType="ref" />
4123       </Parameters>
4124       <Docs>
4125         <param name="buffer">To be added.</param>
4126         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> containing the zero-based position in <paramref name="buffer " />to begin storing the received data.</param>
4127         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to receive.</param>
4128         <param name="flags">To be added.</param>
4129         <param name="remoteEP">To be added.</param>
4130         <summary>
4131           <para> Receives data from a socket and,
4132       for connectionless protocols, stores the endpoint associated with the socket that sent
4133       the data.</para>
4134         </summary>
4135         <returns>
4136           <para>A <see cref="T:System.Int32" qualify="true" />
4137 containing the number of bytes received.</para>
4138         </returns>
4139         <remarks>
4140           <para>For connectionless protocols, when this method successfully completes, <paramref name="remoteEP" /> contains the
4141    endpoint associated with the socket that sent the data.</para>
4142           <para>For connection-oriented protocols, <paramref name="remoteEP" /> is left unchanged.</para>
4143           <para>The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property is required to be set before
4144 this method is called or a <see cref="T:System.Net.Sockets.SocketException" />
4145 is thrown.</para>
4146           <para>The <see cref="P:System.Net.Sockets.Socket.Blocking" /> property of the socket determines
4147 the behavior of this method when no incoming data is available. When
4148 <see langword="false" />, the <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown. When 
4149 <see langword="true" />, this method blocks and 
4150 waits for data to arrive.</para>
4151           <para>For <see cref="F:System.Net.Sockets.SocketType.Stream" qualify="true" /> socket types, if the
4152 remote socket was shut down gracefully, and all data was received, this method
4153 immediately returns zero, regardless of the blocking state.</para>
4154           <para>For message-oriented sockets, if the message is larger than the size of
4155 <paramref name="buffer" />, the buffer is filled with the first part of the message, and the 
4156 <see cref="T:System.Net.Sockets.SocketException" /> 
4157 exception is thrown. For unreliable protocols, the excess data is lost; for
4158 reliable protocols, the data is retained by the service provider.</para>
4159           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.OutOfBand" /> flag is specified as part of the<paramref name="socketFlags " />parameter and the socket is configured for
4160 in-line reception of out-of-band (OOB) data (using the <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" /> socket option) and OOB
4161 data is available, only OOB data is returned.</para>
4162           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.Peek" /> flag is specified as part of the
4163 <paramref name="socketFlags" /> parameter, available data is copied into 
4164 <paramref name="buffer" /> 
4165 but is not removed from the system
4166 buffer.</para>
4167         </remarks>
4168         <exception cref="T:System.ArgumentNullException">
4169           <para>
4170             <paramref name="buffer" /> or <paramref name="remoteEP" /> is <see langword="null" />.</para>
4171         </exception>
4172         <exception cref="T:System.ArgumentOutOfRangeException">
4173           <para>
4174             <paramref name="offset" /> &lt; 0.</para>
4175           <para>-or-</para>
4176           <para>
4177             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
4178           <para>-or-</para>
4179           <para>
4180             <paramref name="size" /> &lt; 0.</para>
4181           <para>-or-</para>
4182           <para>
4183             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
4184         </exception>
4185         <exception cref="T:System.InvalidOperationException">
4186           <para>An asynchronous call is pending and a blocking method has been called.</para>
4187         </exception>
4188         <exception cref="T:System.Net.Sockets.SocketException">
4189           <para>
4190             <paramref name="socketFlags" /> is not a valid combination of values.</para>
4191           <para>-or-</para>
4192           <para>The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.</para>
4193           <para>-or-</para>
4194           <para>An error occurred while accessing the socket.</para>
4195           <para>
4196             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4197           </para>
4198         </exception>
4199         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
4200         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4201         <permission cref="T:System.Net.SocketPermission">
4202           <para>Requires permission to accept a connection on the endpoint defined by the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property of the current instance. See <see cref="F:System.Net.NetworkAccess.Accept" qualify="true" />.</para>
4203           <para>Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</para>
4204         </permission>
4205       </Docs>
4206       <Excluded>0</Excluded>
4207     </Member>
4208     <Member MemberName="ReceiveFromAsync">
4209       <MemberSignature Language="C#" Value="public bool ReceiveFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
4210       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ReceiveFromAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
4211       <MemberType>Method</MemberType>
4212       <AssemblyInfo>
4213         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4214         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4215       </AssemblyInfo>
4216       <ReturnValue>
4217         <ReturnType>System.Boolean</ReturnType>
4218       </ReturnValue>
4219       <Parameters>
4220         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
4221       </Parameters>
4222       <Docs>
4223         <param name="e">To be added.</param>
4224         <summary>To be added.</summary>
4225         <returns>To be added.</returns>
4226         <remarks>To be added.</remarks>
4227       </Docs>
4228     </Member>
4229     <Member MemberName="ReceiveMessageFrom">
4230       <MemberSignature Language="C#" Value="public int ReceiveMessageFrom (byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);" />
4231       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 ReceiveMessageFrom(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint remoteEP, valuetype System.Net.Sockets.IPPacketInformation ipPacketInformation) cil managed" />
4232       <MemberType>Method</MemberType>
4233       <AssemblyInfo>
4234         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4235         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4236       </AssemblyInfo>
4237       <Attributes>
4238         <Attribute>
4239           <AttributeName>System.MonoTODO("Not implemented")</AttributeName>
4240         </Attribute>
4241       </Attributes>
4242       <ReturnValue>
4243         <ReturnType>System.Int32</ReturnType>
4244       </ReturnValue>
4245       <Parameters>
4246         <Parameter Name="buffer" Type="System.Byte[]" />
4247         <Parameter Name="offset" Type="System.Int32" />
4248         <Parameter Name="size" Type="System.Int32" />
4249         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags&amp;" RefType="ref" />
4250         <Parameter Name="remoteEP" Type="System.Net.EndPoint&amp;" RefType="ref" />
4251         <Parameter Name="ipPacketInformation" Type="System.Net.Sockets.IPPacketInformation&amp;" RefType="out" />
4252       </Parameters>
4253       <Docs>
4254         <param name="buffer">To be added.</param>
4255         <param name="offset">To be added.</param>
4256         <param name="size">To be added.</param>
4257         <param name="socketFlags">To be added.</param>
4258         <param name="remoteEP">To be added.</param>
4259         <param name="ipPacketInformation">To be added.</param>
4260         <summary>To be added.</summary>
4261         <returns>To be added.</returns>
4262         <remarks>To be added.</remarks>
4263       </Docs>
4264     </Member>
4265     <Member MemberName="ReceiveMessageFromAsync">
4266       <MemberSignature Language="C#" Value="public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
4267       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool ReceiveMessageFromAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
4268       <MemberType>Method</MemberType>
4269       <AssemblyInfo>
4270         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4271         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4272       </AssemblyInfo>
4273       <Attributes>
4274         <Attribute>
4275           <AttributeName>System.MonoTODO("Not implemented")</AttributeName>
4276         </Attribute>
4277       </Attributes>
4278       <ReturnValue>
4279         <ReturnType>System.Boolean</ReturnType>
4280       </ReturnValue>
4281       <Parameters>
4282         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
4283       </Parameters>
4284       <Docs>
4285         <param name="e">To be added.</param>
4286         <summary>To be added.</summary>
4287         <returns>To be added.</returns>
4288         <remarks>To be added.</remarks>
4289       </Docs>
4290     </Member>
4291     <Member MemberName="ReceiveTimeout">
4292       <MemberSignature Language="C#" Value="public int ReceiveTimeout { get; set; }" />
4293       <MemberSignature Language="ILAsm" Value=".property instance int32 ReceiveTimeout" />
4294       <MemberType>Property</MemberType>
4295       <AssemblyInfo>
4296         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4297         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4298       </AssemblyInfo>
4299       <ReturnValue>
4300         <ReturnType>System.Int32</ReturnType>
4301       </ReturnValue>
4302       <Docs>
4303         <summary>To be added.</summary>
4304         <value>To be added.</value>
4305         <remarks>To be added.</remarks>
4306       </Docs>
4307     </Member>
4308     <Member MemberName="RemoteEndPoint">
4309       <MemberSignature Language="ILASM" Value=".property class System.Net.EndPoint RemoteEndPoint { public hidebysig specialname instance class System.Net.EndPoint get_RemoteEndPoint() }" />
4310       <MemberSignature Language="C#" Value="public System.Net.EndPoint RemoteEndPoint { get; }" />
4311       <MemberSignature Language="ILAsm" Value=".property instance class System.Net.EndPoint RemoteEndPoint" />
4312       <MemberType>Property</MemberType>
4313       <AssemblyInfo>
4314         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4315         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4316         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4317       </AssemblyInfo>
4318       <ReturnValue>
4319         <ReturnType>System.Net.EndPoint</ReturnType>
4320       </ReturnValue>
4321       <Parameters />
4322       <Docs>
4323         <summary>
4324           <para> Gets the remote endpoint associated with the current instance.
4325       </para>
4326         </summary>
4327         <value>
4328           <para> The remote <see cref="T:System.Net.EndPoint" qualify="true" />
4329 associated with the current instance.</para>
4330         </value>
4331         <remarks>
4332           <para> This property
4333       is read-only.</para>
4334           <para> This property contains the network
4335       connection information associated with the socket communicating with the current
4336       instance.</para>
4337           <para> There is no remote endpoint
4338       associated with a socket in the listening state. An attempt to access the
4339    <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> 
4340    property causes a <see cref="T:System.Net.Sockets.SocketException" /> exception to be
4341    thrown.</para>
4342           <para>
4343             <block subset="none" type="note">The <see cref="M:System.Net.Sockets.Socket.Accept" /> and <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> methods, and their asynchronous 
4344 counterparts set this property. </block>
4345           </para>
4346         </remarks>
4347         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
4348         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4349       </Docs>
4350       <Excluded>0</Excluded>
4351     </Member>
4352     <Member MemberName="Select">
4353       <MemberSignature Language="ILASM" Value=".method public hidebysig static void Select(class System.Collections.IList checkRead, class System.Collections.IList checkWrite, class System.Collections.IList checkError, int32 microSeconds)" />
4354       <MemberSignature Language="C#" Value="public static void Select (System.Collections.IList checkRead, System.Collections.IList checkWrite, System.Collections.IList checkError, int microSeconds);" />
4355       <MemberSignature Language="ILAsm" Value=".method public static hidebysig void Select(class System.Collections.IList checkRead, class System.Collections.IList checkWrite, class System.Collections.IList checkError, int32 microSeconds) cil managed" />
4356       <MemberType>Method</MemberType>
4357       <AssemblyInfo>
4358         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4359         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4360         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4361       </AssemblyInfo>
4362       <ReturnValue>
4363         <ReturnType>System.Void</ReturnType>
4364       </ReturnValue>
4365       <Parameters>
4366         <Parameter Name="checkRead" Type="System.Collections.IList" />
4367         <Parameter Name="checkWrite" Type="System.Collections.IList" />
4368         <Parameter Name="checkError" Type="System.Collections.IList" />
4369         <Parameter Name="microSeconds" Type="System.Int32" />
4370       </Parameters>
4371       <Docs>
4372         <param name="checkRead">A <see cref="T:System.Collections.IList" /> object containing the <see cref="T:System.Net.Sockets.Socket" /> instances to check for read status.</param>
4373         <param name="checkWrite">A <see cref="T:System.Collections.IList" /> object containing the <see cref="T:System.Net.Sockets.Socket" /> instances to check for write status.</param>
4374         <param name="checkError">A <see cref="T:System.Collections.IList" /> object containing the <see cref="T:System.Net.Sockets.Socket" /> instances to check for error status.</param>
4375         <param name="microSeconds">A <see cref="T:System.Int32" qualify="true" /> that specifies the time to wait for a response, in microseconds. Specify a negative value to wait indefinitely for the status to be determined.</param>
4376         <summary>
4377           <para>Determines the read, write, or error status of a set
4378       of <see cref="T:System.Net.Sockets.Socket" /> instances.</para>
4379         </summary>
4380         <remarks>
4381           <para>Upon successful completion, this method removes all
4382    <see cref="T:System.Net.Sockets.Socket" /> instances from
4383       the specified list that do not
4384       satisfy one of the conditions associated
4385       with that list. The following table describes the conditions for each list.</para>
4386           <list type="table">
4387             <listheader>
4388               <term>List</term>
4389               <description>Condition to remain in list</description>
4390             </listheader>
4391             <item>
4392               <term>
4393                 <paramref name="checkRead" />
4394               </term>
4395               <description>
4396                 <para>Data is available for reading (includes
4397             out-of-band data if the <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" />
4398             value defined in the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration is set).</para>
4399                 <para>-or-</para>
4400                 <para>The socket is in the listening state with a pending connection, and the <see cref="M:System.Net.Sockets.Socket.Accept" /> method has been called
4401          and is guaranteed to succeed without blocking.</para>
4402                 <para>-or-</para>
4403                 <para>The connection has been closed, reset, or terminated.</para>
4404               </description>
4405             </item>
4406             <item>
4407               <term>
4408                 <paramref name="checkWrite" />
4409               </term>
4410               <description>
4411                 <para>Data can be sent.</para>
4412                 <para>-or-</para>
4413                 <para>A non-blocking <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> method is being processed and the
4414       connection has succeeded.</para>
4415               </description>
4416             </item>
4417             <item>
4418               <term>
4419                 <paramref name="checkError" />
4420               </term>
4421               <description>
4422                 <para>The <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" />
4423 value defined in the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration is not set and
4424 out-of-band data is available.</para>
4425                 <para>-or-</para>
4426                 <para>A non-blocking <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> method is being processed and the
4427 connection has failed.</para>
4428               </description>
4429             </item>
4430           </list>
4431           <para>
4432             <block subset="none" type="note">To determine the status of a specific
4433 <see cref="T:System.Net.Sockets.Socket" /> instance, check whether the instance 
4434    remains in the list after the method returns.</block>
4435           </para>
4436           <para> When the method cannot determine the status of all the
4437 <see cref="T:System.Net.Sockets.Socket" /> instances within the time specified in the 
4438 <paramref name="microseconds" /> parameter, the 
4439    method removes all the <see cref="T:System.Net.Sockets.Socket" />
4440    instances from all the lists and returns.</para>
4441           <para> At least one of <paramref name="checkRead" />, <paramref name="checkWrite" />, or
4442 <paramref name="checkError" />, is required to contain at least one <see cref="T:System.Net.Sockets.Socket" /> instance. The 
4443 other parameters can be empty or <see langword="null" />.</para>
4444         </remarks>
4445         <exception cref="T:System.ArgumentNullException">All of the following parameters are <see langword="null" /> or empty: <paramref name="checkRead" />, <paramref name="checkWrite" />, and <paramref name="checkError" />.</exception>
4446         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing one of the sockets. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
4447         <example>
4448           <para>The following example determines the status of the socket instance named
4449       socket3 and writes the result to the console.</para>
4450           <code lang="C#">using System;
4451 using System.Collections;
4452 using System.Net.Sockets;
4453
4454 class SelectTest {
4455
4456   public static void Main() {
4457
4458     Socket socket1 =
4459       new Socket(AddressFamily.InterNetwork,
4460                  SocketType.Stream,
4461                  ProtocolType.Tcp);
4462     Socket socket2 =
4463       new Socket(AddressFamily.InterNetwork,
4464                  SocketType.Stream,
4465                  ProtocolType.Tcp);
4466     Socket socket3 =
4467       new Socket(AddressFamily.InterNetwork,
4468                  SocketType.Stream,
4469                  ProtocolType.Tcp);
4470
4471     ArrayList readList = new ArrayList();
4472     ArrayList writeList = new ArrayList();
4473     ArrayList errorList = new ArrayList();
4474
4475     readList.Add(socket1);
4476     readList.Add(socket2);
4477     readList.Add(socket3);
4478     errorList.Add(socket1);
4479     errorList.Add(socket3);
4480
4481     // readList.Contains(Socket3) returns true
4482     // if Socket3 is in ReadList.
4483     Console.WriteLine(
4484       "socket3 is placed in readList and errorList.");
4485     Console.WriteLine(
4486       "socket3 is {0}in readList.",
4487       readList.Contains(socket3) ? "" : "not " );
4488     Console.WriteLine(
4489       "socket3 is {0}in writeList.",
4490       writeList.Contains(socket3) ? "" : "not " );
4491     Console.WriteLine(
4492       "socket3 is {0}in errorList.",
4493       errorList.Contains(socket3) ? "" : "not " );
4494
4495     Socket.Select(readList, writeList, errorList, 10);
4496     Console.WriteLine("The Select method has been called.");
4497     Console.WriteLine(
4498       "socket3 is {0}in readList.",
4499       readList.Contains(socket3) ? "" : "not " );
4500     Console.WriteLine(
4501       "socket3 is {0}in writeList.",
4502       writeList.Contains(socket3) ? "" : "not " );
4503     Console.WriteLine(
4504       "socket3 is {0}in errorList.",
4505       errorList.Contains(socket3) ? "" : "not " );
4506   }
4507 }
4508    </code>
4509           <para>The output is</para>
4510           <c>
4511             <para>socket3 is placed in readList and errorList.</para>
4512             <para>socket3 is in readList.</para>
4513             <para>socket3 is not in writeList.</para>
4514             <para>socket3 is in errorList.</para>
4515             <para>The Select method has been called.</para>
4516             <para>socket3 is not in readList.</para>
4517             <para>socket3 is not in writeList.</para>
4518             <para>socket3 is not in errorList.</para>
4519           </c>
4520         </example>
4521       </Docs>
4522       <Excluded>0</Excluded>
4523     </Member>
4524     <Member MemberName="Send">
4525       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Send(class System.Byte[] buffer)" />
4526       <MemberSignature Language="C#" Value="public int Send (byte[] buf);" />
4527       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(unsigned int8[] buf) cil managed" />
4528       <MemberType>Method</MemberType>
4529       <AssemblyInfo>
4530         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4531         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4532         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4533       </AssemblyInfo>
4534       <ReturnValue>
4535         <ReturnType>System.Int32</ReturnType>
4536       </ReturnValue>
4537       <Parameters>
4538         <Parameter Name="buf" Type="System.Byte[]" />
4539       </Parameters>
4540       <Docs>
4541         <param name="buf">A <see cref="T:System.Byte" qualify="true" /> array containing data to send to the socket.</param>
4542         <summary>
4543           <para> Sends data to a
4544       connected socket.</para>
4545         </summary>
4546         <returns>
4547           <para>A <see cref="T:System.Int32" qualify="true" />
4548 containing the number of bytes sent.</para>
4549         </returns>
4550         <remarks>
4551           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />(<paramref name="buffer" />, 0,
4552 <paramref name="buffer" />.Length, <see cref="F:System.Net.Sockets.SocketFlags.None" qualify="true" />).</para>
4553         </remarks>
4554         <exception cref="T:System.ArgumentNullException">
4555           <paramref name="buffer " />is <see langword="null" />.</exception>
4556         <exception cref="T:System.InvalidOperationException">
4557           <para>An asynchronous call is pending and a blocking method has been called.</para>
4558         </exception>
4559         <exception cref="T:System.Net.Sockets.SocketException">
4560           <para>An error occurred while accessing the socket.</para>
4561           <para>
4562             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4563           </para>
4564         </exception>
4565         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4566       </Docs>
4567       <Excluded>0</Excluded>
4568     </Member>
4569     <Member MemberName="Send">
4570       <MemberSignature Language="C#" Value="public int Send (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers);" />
4571       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers) cil managed" />
4572       <MemberType>Method</MemberType>
4573       <AssemblyInfo>
4574         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4575         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4576       </AssemblyInfo>
4577       <ReturnValue>
4578         <ReturnType>System.Int32</ReturnType>
4579       </ReturnValue>
4580       <Parameters>
4581         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
4582       </Parameters>
4583       <Docs>
4584         <param name="buffers">To be added.</param>
4585         <summary>To be added.</summary>
4586         <returns>To be added.</returns>
4587         <remarks>To be added.</remarks>
4588       </Docs>
4589     </Member>
4590     <Member MemberName="Send">
4591       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Send(class System.Byte[] buffer, valuetype System.Net.Sockets.SocketFlags socketFlags)" />
4592       <MemberSignature Language="C#" Value="public int Send (byte[] buf, System.Net.Sockets.SocketFlags flags);" />
4593       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(unsigned int8[] buf, valuetype System.Net.Sockets.SocketFlags flags) cil managed" />
4594       <MemberType>Method</MemberType>
4595       <AssemblyInfo>
4596         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4597         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4598         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4599       </AssemblyInfo>
4600       <ReturnValue>
4601         <ReturnType>System.Int32</ReturnType>
4602       </ReturnValue>
4603       <Parameters>
4604         <Parameter Name="buf" Type="System.Byte[]" />
4605         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4606       </Parameters>
4607       <Docs>
4608         <param name="buf">To be added.</param>
4609         <param name="flags">To be added.</param>
4610         <summary>
4611           <para>Sends data to a connected socket.</para>
4612         </summary>
4613         <returns>
4614           <para>A <see cref="T:System.Int32" qualify="true" />
4615 containing the number of bytes sent.</para>
4616         </returns>
4617         <remarks>
4618           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />(<paramref name="buffer" />, 0, <paramref name="buffer" />.Length,
4619 <paramref name="socketFlags" />).</para>
4620         </remarks>
4621         <exception cref="T:System.ArgumentNullException">
4622           <paramref name="buffer " />is <see langword="null" />.</exception>
4623         <exception cref="T:System.InvalidOperationException">
4624           <para>An asynchronous call is pending and a blocking method has been called.</para>
4625         </exception>
4626         <exception cref="T:System.Net.Sockets.SocketException">
4627           <para>
4628             <paramref name="socketFlags" /> is not a valid combination of values.</para>
4629           <para>-or-</para>
4630           <para>An error occurred while accessing the socket. </para>
4631           <para>
4632             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4633           </para>
4634         </exception>
4635         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4636       </Docs>
4637       <Excluded>0</Excluded>
4638     </Member>
4639     <Member MemberName="Send">
4640       <MemberSignature Language="C#" Value="public int Send (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags);" />
4641       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags) cil managed" />
4642       <MemberType>Method</MemberType>
4643       <AssemblyInfo>
4644         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4645         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4646       </AssemblyInfo>
4647       <ReturnValue>
4648         <ReturnType>System.Int32</ReturnType>
4649       </ReturnValue>
4650       <Parameters>
4651         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
4652         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
4653       </Parameters>
4654       <Docs>
4655         <param name="buffers">To be added.</param>
4656         <param name="socketFlags">To be added.</param>
4657         <summary>To be added.</summary>
4658         <returns>To be added.</returns>
4659         <remarks>To be added.</remarks>
4660       </Docs>
4661     </Member>
4662     <Member MemberName="Send">
4663       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Send(class System.Byte[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags)" />
4664       <MemberSignature Language="C#" Value="public int Send (byte[] buf, int size, System.Net.Sockets.SocketFlags flags);" />
4665       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(unsigned int8[] buf, int32 size, valuetype System.Net.Sockets.SocketFlags flags) cil managed" />
4666       <MemberType>Method</MemberType>
4667       <AssemblyInfo>
4668         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4669         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4670         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4671       </AssemblyInfo>
4672       <ReturnValue>
4673         <ReturnType>System.Int32</ReturnType>
4674       </ReturnValue>
4675       <Parameters>
4676         <Parameter Name="buf" Type="System.Byte[]" />
4677         <Parameter Name="size" Type="System.Int32" />
4678         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4679       </Parameters>
4680       <Docs>
4681         <param name="buf">To be added.</param>
4682         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to send.</param>
4683         <param name="flags">To be added.</param>
4684         <summary>
4685           <para>Sends data to a connected socket.</para>
4686         </summary>
4687         <returns>
4688           <para>A <see cref="T:System.Int32" qualify="true" />
4689 containing the number of bytes sent.</para>
4690         </returns>
4691         <remarks>
4692           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />(<paramref name="buffer" />, 0, <paramref name="size" />,
4693 <paramref name="socketFlags" />).</para>
4694         </remarks>
4695         <exception cref="T:System.ArgumentNullException">
4696           <paramref name="buffer " />is <see langword="null" />.</exception>
4697         <exception cref="T:System.ArgumentOutOfRangeException">
4698           <para>
4699             <paramref name="size" /> &lt; 0.</para>
4700           <para> -or-</para>
4701           <para>
4702             <paramref name="size" /> &gt; <paramref name="buffer" />.Length.</para>
4703         </exception>
4704         <exception cref="T:System.InvalidOperationException">
4705           <para>An asynchronous call is pending and a blocking method has been called.</para>
4706         </exception>
4707         <exception cref="T:System.Net.Sockets.SocketException">
4708           <para>
4709             <paramref name="socketFlags" /> is not a valid combination of values. </para>
4710           <para>-or-</para>
4711           <para>An error occurred while accessing the socket.</para>
4712           <para>
4713             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4714           </para>
4715         </exception>
4716         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4717       </Docs>
4718       <Excluded>0</Excluded>
4719     </Member>
4720     <Member MemberName="Send">
4721       <MemberSignature Language="C#" Value="public int Send (System.Collections.Generic.IList&lt;ArraySegment&lt;byte&gt;&gt; buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);" />
4722       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(class System.Collections.Generic.IList`1&lt;valuetype System.ArraySegment`1&lt;unsigned int8&gt;&gt; buffers, valuetype System.Net.Sockets.SocketFlags socketFlags, valuetype System.Net.Sockets.SocketError errorCode) cil managed" />
4723       <MemberType>Method</MemberType>
4724       <AssemblyInfo>
4725         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4726         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4727       </AssemblyInfo>
4728       <Attributes>
4729         <Attribute>
4730           <AttributeName>System.CLSCompliant(false)</AttributeName>
4731         </Attribute>
4732       </Attributes>
4733       <ReturnValue>
4734         <ReturnType>System.Int32</ReturnType>
4735       </ReturnValue>
4736       <Parameters>
4737         <Parameter Name="buffers" Type="System.Collections.Generic.IList&lt;System.ArraySegment&lt;System.Byte&gt;&gt;" />
4738         <Parameter Name="socketFlags" Type="System.Net.Sockets.SocketFlags" />
4739         <Parameter Name="errorCode" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
4740       </Parameters>
4741       <Docs>
4742         <param name="buffers">To be added.</param>
4743         <param name="socketFlags">To be added.</param>
4744         <param name="errorCode">To be added.</param>
4745         <summary>To be added.</summary>
4746         <returns>To be added.</returns>
4747         <remarks>To be added.</remarks>
4748       </Docs>
4749     </Member>
4750     <Member MemberName="Send">
4751       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 Send(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags)" />
4752       <MemberSignature Language="C#" Value="public int Send (byte[] buf, int offset, int size, System.Net.Sockets.SocketFlags flags);" />
4753       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(unsigned int8[] buf, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags) cil managed" />
4754       <MemberType>Method</MemberType>
4755       <AssemblyInfo>
4756         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4757         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4758         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4759       </AssemblyInfo>
4760       <ReturnValue>
4761         <ReturnType>System.Int32</ReturnType>
4762       </ReturnValue>
4763       <Parameters>
4764         <Parameter Name="buf" Type="System.Byte[]" />
4765         <Parameter Name="offset" Type="System.Int32" />
4766         <Parameter Name="size" Type="System.Int32" />
4767         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4768       </Parameters>
4769       <Docs>
4770         <param name="buf">To be added.</param>
4771         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> that specifies the zero-based position in buffer that is the starting location of the data to send.</param>
4772         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to send.</param>
4773         <param name="flags">To be added.</param>
4774         <summary>
4775           <para>Sends data to a connected socket.</para>
4776         </summary>
4777         <returns>
4778           <para>A <see cref="T:System.Int32" qualify="true" />
4779 containing the number of bytes sent.</para>
4780         </returns>
4781         <remarks>
4782           <para>For connection-oriented protocols, the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property of the current instance is
4783    required to be set before calling this
4784    method.</para>
4785           <para>For connectionless protocols, calling the <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> methods sets the <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> property and allows the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" />
4786 method to be used instead of the <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />
4787 method.</para>
4788           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.DontRoute" /> flag
4789 is specified as part of the <paramref name="socketFlags" /> parameter,
4790 the sent data is not routed.</para>
4791           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.OutOfBand" /> flag is specified as part of the
4792 <paramref name="socketFlags" /> parameter, only out-of-band (OOB) data is sent.</para>
4793           <para>When the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property of the current instance is
4794 set to <see langword="true" /> and
4795 buffer space is not available within the underlying protocol, this method
4796 blocks. </para>
4797           <para>For message-oriented sockets, when 
4798 <paramref name="size" /> is greater than the maximum message size of the underlying
4799    protocol, no data is sent and the <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown.</para>
4800         </remarks>
4801         <exception cref="T:System.ArgumentNullException">
4802           <paramref name="buffer " />is <see langword="null" />.</exception>
4803         <exception cref="T:System.ArgumentOutOfRangeException">
4804           <para>
4805             <paramref name="offset" /> &lt; 0. </para>
4806           <para>-or- </para>
4807           <para>
4808             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
4809           <para> -or-</para>
4810           <para>
4811             <paramref name="size" /> &lt; 0.</para>
4812           <para>-or-</para>
4813           <para>
4814             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
4815         </exception>
4816         <exception cref="T:System.InvalidOperationException">
4817           <para>An asynchronous call is pending and a blocking method has been called.</para>
4818         </exception>
4819         <exception cref="T:System.Net.Sockets.SocketException">
4820           <para>
4821             <paramref name="socketFlags" /> is not a valid combination of values.</para>
4822           <para>-or-</para>
4823           <para>An error occurred while accessing the socket. </para>
4824           <para>
4825             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
4826           </para>
4827         </exception>
4828         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
4829       </Docs>
4830       <Excluded>0</Excluded>
4831     </Member>
4832     <Member MemberName="Send">
4833       <MemberSignature Language="C#" Value="public int Send (byte[] buf, int offset, int size, System.Net.Sockets.SocketFlags flags, out System.Net.Sockets.SocketError error);" />
4834       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 Send(unsigned int8[] buf, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags, valuetype System.Net.Sockets.SocketError error) cil managed" />
4835       <MemberType>Method</MemberType>
4836       <AssemblyInfo>
4837         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4838         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4839       </AssemblyInfo>
4840       <ReturnValue>
4841         <ReturnType>System.Int32</ReturnType>
4842       </ReturnValue>
4843       <Parameters>
4844         <Parameter Name="buf" Type="System.Byte[]" />
4845         <Parameter Name="offset" Type="System.Int32" />
4846         <Parameter Name="size" Type="System.Int32" />
4847         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
4848         <Parameter Name="error" Type="System.Net.Sockets.SocketError&amp;" RefType="out" />
4849       </Parameters>
4850       <Docs>
4851         <param name="buf">To be added.</param>
4852         <param name="offset">To be added.</param>
4853         <param name="size">To be added.</param>
4854         <param name="flags">To be added.</param>
4855         <param name="error">To be added.</param>
4856         <summary>To be added.</summary>
4857         <returns>To be added.</returns>
4858         <remarks>To be added.</remarks>
4859       </Docs>
4860     </Member>
4861     <Member MemberName="SendAsync">
4862       <MemberSignature Language="C#" Value="public bool SendAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
4863       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool SendAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
4864       <MemberType>Method</MemberType>
4865       <AssemblyInfo>
4866         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4867         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4868       </AssemblyInfo>
4869       <ReturnValue>
4870         <ReturnType>System.Boolean</ReturnType>
4871       </ReturnValue>
4872       <Parameters>
4873         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
4874       </Parameters>
4875       <Docs>
4876         <param name="e">To be added.</param>
4877         <summary>To be added.</summary>
4878         <returns>To be added.</returns>
4879         <remarks>To be added.</remarks>
4880       </Docs>
4881     </Member>
4882     <Member MemberName="SendBufferSize">
4883       <MemberSignature Language="C#" Value="public int SendBufferSize { get; set; }" />
4884       <MemberSignature Language="ILAsm" Value=".property instance int32 SendBufferSize" />
4885       <MemberType>Property</MemberType>
4886       <AssemblyInfo>
4887         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4888         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4889       </AssemblyInfo>
4890       <ReturnValue>
4891         <ReturnType>System.Int32</ReturnType>
4892       </ReturnValue>
4893       <Docs>
4894         <summary>To be added.</summary>
4895         <value>To be added.</value>
4896         <remarks>To be added.</remarks>
4897       </Docs>
4898     </Member>
4899     <Member MemberName="SendFile">
4900       <MemberSignature Language="C#" Value="public void SendFile (string fileName);" />
4901       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SendFile(string fileName) cil managed" />
4902       <MemberType>Method</MemberType>
4903       <AssemblyInfo>
4904         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4905         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4906       </AssemblyInfo>
4907       <ReturnValue>
4908         <ReturnType>System.Void</ReturnType>
4909       </ReturnValue>
4910       <Parameters>
4911         <Parameter Name="fileName" Type="System.String" />
4912       </Parameters>
4913       <Docs>
4914         <param name="fileName">To be added.</param>
4915         <summary>To be added.</summary>
4916         <remarks>To be added.</remarks>
4917       </Docs>
4918     </Member>
4919     <Member MemberName="SendFile">
4920       <MemberSignature Language="C#" Value="public void SendFile (string fileName, byte[] preBuffer, byte[] postBuffer, System.Net.Sockets.TransmitFileOptions flags);" />
4921       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SendFile(string fileName, unsigned int8[] preBuffer, unsigned int8[] postBuffer, valuetype System.Net.Sockets.TransmitFileOptions flags) cil managed" />
4922       <MemberType>Method</MemberType>
4923       <AssemblyInfo>
4924         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4925         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4926       </AssemblyInfo>
4927       <ReturnValue>
4928         <ReturnType>System.Void</ReturnType>
4929       </ReturnValue>
4930       <Parameters>
4931         <Parameter Name="fileName" Type="System.String" />
4932         <Parameter Name="preBuffer" Type="System.Byte[]" />
4933         <Parameter Name="postBuffer" Type="System.Byte[]" />
4934         <Parameter Name="flags" Type="System.Net.Sockets.TransmitFileOptions" />
4935       </Parameters>
4936       <Docs>
4937         <param name="fileName">To be added.</param>
4938         <param name="preBuffer">To be added.</param>
4939         <param name="postBuffer">To be added.</param>
4940         <param name="flags">To be added.</param>
4941         <summary>To be added.</summary>
4942         <remarks>To be added.</remarks>
4943       </Docs>
4944     </Member>
4945     <Member MemberName="SendPacketsAsync">
4946       <MemberSignature Language="C#" Value="public bool SendPacketsAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
4947       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool SendPacketsAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
4948       <MemberType>Method</MemberType>
4949       <AssemblyInfo>
4950         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4951         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4952       </AssemblyInfo>
4953       <Attributes>
4954         <Attribute>
4955           <AttributeName>System.MonoTODO("Not implemented")</AttributeName>
4956         </Attribute>
4957       </Attributes>
4958       <ReturnValue>
4959         <ReturnType>System.Boolean</ReturnType>
4960       </ReturnValue>
4961       <Parameters>
4962         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
4963       </Parameters>
4964       <Docs>
4965         <param name="e">To be added.</param>
4966         <summary>To be added.</summary>
4967         <returns>To be added.</returns>
4968         <remarks>To be added.</remarks>
4969       </Docs>
4970     </Member>
4971     <Member MemberName="SendTimeout">
4972       <MemberSignature Language="C#" Value="public int SendTimeout { get; set; }" />
4973       <MemberSignature Language="ILAsm" Value=".property instance int32 SendTimeout" />
4974       <MemberType>Property</MemberType>
4975       <AssemblyInfo>
4976         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4977         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4978       </AssemblyInfo>
4979       <ReturnValue>
4980         <ReturnType>System.Int32</ReturnType>
4981       </ReturnValue>
4982       <Docs>
4983         <summary>To be added.</summary>
4984         <value>To be added.</value>
4985         <remarks>To be added.</remarks>
4986       </Docs>
4987     </Member>
4988     <Member MemberName="SendTo">
4989       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 SendTo(class System.Byte[] buffer, class System.Net.EndPoint remoteEP)" />
4990       <MemberSignature Language="C#" Value="public int SendTo (byte[] buffer, System.Net.EndPoint remote_end);" />
4991       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 SendTo(unsigned int8[] buffer, class System.Net.EndPoint remote_end) cil managed" />
4992       <MemberType>Method</MemberType>
4993       <AssemblyInfo>
4994         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
4995         <AssemblyVersion>2.0.0.0</AssemblyVersion>
4996         <AssemblyVersion>4.0.0.0</AssemblyVersion>
4997       </AssemblyInfo>
4998       <ReturnValue>
4999         <ReturnType>System.Int32</ReturnType>
5000       </ReturnValue>
5001       <Parameters>
5002         <Parameter Name="buffer" Type="System.Byte[]" />
5003         <Parameter Name="remote_end" Type="System.Net.EndPoint" />
5004       </Parameters>
5005       <Docs>
5006         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array containing data to send to the socket.</param>
5007         <param name="remote_end">To be added.</param>
5008         <summary>
5009           <para> Sends data to the socket associated with the specified
5010       endpoint.</para>
5011         </summary>
5012         <returns>
5013           <para>A <see cref="T:System.Int32" qualify="true" />
5014 containing the number of bytes sent.</para>
5015         </returns>
5016         <remarks>
5017           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />(<paramref name="buffer" />,
5018    0, <paramref name="buffer" />.Length, <see cref="F:System.Net.Sockets.SocketFlags.None" qualify="true" />,<paramref name=" remoteEP" />).</para>
5019         </remarks>
5020         <exception cref="T:System.ArgumentNullException">
5021           <para>
5022             <paramref name="buffer or remoteEP " />is <see langword="null" />.</para>
5023         </exception>
5024         <exception cref="T:System.InvalidOperationException">
5025           <para>An asynchronous call is pending and a blocking method has been called.</para>
5026         </exception>
5027         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
5028         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
5029         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5030         <permission cref="T:System.Net.SocketPermission">Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</permission>
5031       </Docs>
5032       <Excluded>0</Excluded>
5033     </Member>
5034     <Member MemberName="SendTo">
5035       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 SendTo(class System.Byte[] buffer, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint remoteEP)" />
5036       <MemberSignature Language="C#" Value="public int SendTo (byte[] buffer, System.Net.Sockets.SocketFlags flags, System.Net.EndPoint remote_end);" />
5037       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 SendTo(unsigned int8[] buffer, valuetype System.Net.Sockets.SocketFlags flags, class System.Net.EndPoint remote_end) cil managed" />
5038       <MemberType>Method</MemberType>
5039       <AssemblyInfo>
5040         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5041         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5042         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5043       </AssemblyInfo>
5044       <ReturnValue>
5045         <ReturnType>System.Int32</ReturnType>
5046       </ReturnValue>
5047       <Parameters>
5048         <Parameter Name="buffer" Type="System.Byte[]" />
5049         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
5050         <Parameter Name="remote_end" Type="System.Net.EndPoint" />
5051       </Parameters>
5052       <Docs>
5053         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array containing data to send to the socket.</param>
5054         <param name="flags">To be added.</param>
5055         <param name="remote_end">To be added.</param>
5056         <summary>
5057           <para> Sends data to the socket associated with the specified
5058       endpoint.</para>
5059         </summary>
5060         <returns>
5061           <para>A <see cref="T:System.Int32" qualify="true" />
5062 containing the number of bytes sent.</para>
5063         </returns>
5064         <remarks>
5065           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />(<paramref name="buffer" />, 0, <paramref name="buffer" />.Length,
5066 <paramref name="socketFlags" />, <paramref name="remoteEP" />).</para>
5067         </remarks>
5068         <exception cref="T:System.ArgumentNullException">
5069           <para>
5070             <paramref name="buffer or remoteEP " />is <see langword="null" />.</para>
5071         </exception>
5072         <exception cref="T:System.InvalidOperationException">
5073           <para>An asynchronous call is pending and a blocking method has been called.</para>
5074         </exception>
5075         <exception cref="T:System.Net.Sockets.SocketException">
5076           <para>
5077             <paramref name="socketFlags" /> is not a valid combination of values.</para>
5078           <para>-or-</para>
5079           <para>An error occurred while accessing the socket. </para>
5080           <para>
5081             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
5082           </para>
5083         </exception>
5084         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
5085         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5086         <permission cref="T:System.Net.SocketPermission">Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</permission>
5087       </Docs>
5088       <Excluded>0</Excluded>
5089     </Member>
5090     <Member MemberName="SendTo">
5091       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 SendTo(class System.Byte[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint remoteEP)" />
5092       <MemberSignature Language="C#" Value="public int SendTo (byte[] buffer, int size, System.Net.Sockets.SocketFlags flags, System.Net.EndPoint remote_end);" />
5093       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 SendTo(unsigned int8[] buffer, int32 size, valuetype System.Net.Sockets.SocketFlags flags, class System.Net.EndPoint remote_end) cil managed" />
5094       <MemberType>Method</MemberType>
5095       <AssemblyInfo>
5096         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5097         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5098         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5099       </AssemblyInfo>
5100       <ReturnValue>
5101         <ReturnType>System.Int32</ReturnType>
5102       </ReturnValue>
5103       <Parameters>
5104         <Parameter Name="buffer" Type="System.Byte[]" />
5105         <Parameter Name="size" Type="System.Int32" />
5106         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
5107         <Parameter Name="remote_end" Type="System.Net.EndPoint" />
5108       </Parameters>
5109       <Docs>
5110         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array containing data to send to the socket.</param>
5111         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to send.</param>
5112         <param name="flags">To be added.</param>
5113         <param name="remote_end">To be added.</param>
5114         <summary>
5115           <para> Sends data to the socket associated with the specified
5116       endpoint.</para>
5117         </summary>
5118         <returns>
5119           <para>A <see cref="T:System.Int32" qualify="true" />
5120 containing the number of bytes sent.</para>
5121         </returns>
5122         <remarks>
5123           <para>This method is equivalent to <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" />(<paramref name="buffer" />, 0, <paramref name="size" />,
5124 <paramref name="socketFlags" />, <paramref name="remoteEP" />).</para>
5125         </remarks>
5126         <exception cref="T:System.ArgumentNullException">
5127           <para>
5128             <paramref name="buffer or remoteEP " />is <see langword="null" />.</para>
5129         </exception>
5130         <exception cref="T:System.ArgumentOutOfRangeException">
5131           <para>
5132             <paramref name="size" /> &lt; 0.</para>
5133           <para> -or-</para>
5134           <para>
5135             <paramref name="size" /> &gt; <paramref name="buffer" />.Length.</para>
5136         </exception>
5137         <exception cref="T:System.InvalidOperationException">
5138           <para>An asynchronous call is pending and a blocking method has been called.</para>
5139         </exception>
5140         <exception cref="T:System.Net.Sockets.SocketException">
5141           <para>
5142             <paramref name="socketFlags" /> is not a valid combination of values.</para>
5143           <para>-or-</para>
5144           <para>An error occurred while accessing the socket. </para>
5145           <para>
5146             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
5147           </para>
5148         </exception>
5149         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
5150         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5151         <permission cref="T:System.Net.SocketPermission">Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</permission>
5152       </Docs>
5153       <Excluded>0</Excluded>
5154     </Member>
5155     <Member MemberName="SendTo">
5156       <MemberSignature Language="ILASM" Value=".method public hidebysig instance int32 SendTo(class System.Byte[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags socketFlags, class System.Net.EndPoint remoteEP)" />
5157       <MemberSignature Language="C#" Value="public int SendTo (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags flags, System.Net.EndPoint remote_end);" />
5158       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 SendTo(unsigned int8[] buffer, int32 offset, int32 size, valuetype System.Net.Sockets.SocketFlags flags, class System.Net.EndPoint remote_end) cil managed" />
5159       <MemberType>Method</MemberType>
5160       <AssemblyInfo>
5161         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5162         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5163         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5164       </AssemblyInfo>
5165       <ReturnValue>
5166         <ReturnType>System.Int32</ReturnType>
5167       </ReturnValue>
5168       <Parameters>
5169         <Parameter Name="buffer" Type="System.Byte[]" />
5170         <Parameter Name="offset" Type="System.Int32" />
5171         <Parameter Name="size" Type="System.Int32" />
5172         <Parameter Name="flags" Type="System.Net.Sockets.SocketFlags" />
5173         <Parameter Name="remote_end" Type="System.Net.EndPoint" />
5174       </Parameters>
5175       <Docs>
5176         <param name="buffer">A <see cref="T:System.Byte" qualify="true" /> array containing data to send to the socket.</param>
5177         <param name="offset">A <see cref="T:System.Int32" qualify="true" /> that specifies the zero-based position in buffer that is the starting location of the data to send.</param>
5178         <param name="size">A <see cref="T:System.Int32" qualify="true" /> containing the number of bytes to send.</param>
5179         <param name="flags">To be added.</param>
5180         <param name="remote_end">To be added.</param>
5181         <summary>
5182           <para> Sends data to the socket associated with the specified
5183       endpoint.</para>
5184         </summary>
5185         <returns>
5186           <para>A <see cref="T:System.Int32" qualify="true" />
5187 containing the number of bytes sent.</para>
5188         </returns>
5189         <remarks>
5190           <para>For connected sockets using connectionless
5191       protocols, <paramref name="remoteEP" /> overrides the endpoint specified in the <see cref="P:System.Net.Sockets.Socket.RemoteEndPoint" /> property.</para>
5192           <para>For unconnected sockets using connectionless protocols, this method sets
5193       the <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" />
5194       property of the current instance to a value determined by the protocol.
5195       Subsequent data is required to be received on <see langword="LocalEndPoint" />.</para>
5196           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.DontRoute" /> flag
5197    is specified as part of the <paramref name="socketFlags" /> parameter,
5198    the sent data is not routed.</para>
5199           <para>When the <see cref="F:System.Net.Sockets.SocketFlags.OutOfBand" /> flag is specified as part of the
5200 <paramref name="socketFlags" /> parameter, only out-of-band (OOB) data is sent.</para>
5201           <para>When the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property of the current instance is
5202 set to <see langword="true" /> and
5203 buffer space is not available within the underlying protocol, this method
5204 blocks. </para>
5205           <para>For message-oriented sockets, when  <paramref name="size" /> is greater than
5206 the maximum message size of the underlying protocol, no data is sent and the
5207 <see cref="T:System.Net.Sockets.SocketException" /> exception is thrown.</para>
5208           <para>For connection-oriented sockets, the <paramref name="remoteEP" /> parameter is
5209 ignored.</para>
5210         </remarks>
5211         <exception cref="T:System.ArgumentNullException">
5212           <para>
5213             <paramref name="buffer or remoteEP " />is <see langword="null" />.</para>
5214         </exception>
5215         <exception cref="T:System.ArgumentOutOfRangeException">
5216           <para>
5217             <paramref name="offset" /> &lt; 0. </para>
5218           <para>-or- </para>
5219           <para>
5220             <paramref name="offset" /> &gt; <paramref name="buffer" />.Length. </para>
5221           <para> -or-</para>
5222           <para>
5223             <paramref name="size" /> &lt; 0.</para>
5224           <para>-or-</para>
5225           <para>
5226             <paramref name="size" /> &gt; <paramref name="buffer" />.Length - <paramref name="offset" />.</para>
5227         </exception>
5228         <exception cref="T:System.InvalidOperationException">
5229           <para>An asynchronous call is pending and a blocking method has been called.</para>
5230         </exception>
5231         <exception cref="T:System.Net.Sockets.SocketException">
5232           <para>
5233             <paramref name="socketFlags" /> is not a valid combination of values.</para>
5234           <para>-or-</para>
5235           <para>An error occurred while accessing the socket. </para>
5236           <para>
5237             <block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block>
5238           </para>
5239         </exception>
5240         <exception cref="T:System.Security.SecurityException"> A caller in the call stack does not have the required permissions.</exception>
5241         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5242         <permission cref="T:System.Net.SocketPermission">Requires permission to make a connection to the endpoint defined by <paramref name="remoteEP" />. See <see cref="F:System.Net.NetworkAccess.Connect" qualify="true" />.</permission>
5243       </Docs>
5244       <Excluded>0</Excluded>
5245     </Member>
5246     <Member MemberName="SendToAsync">
5247       <MemberSignature Language="C#" Value="public bool SendToAsync (System.Net.Sockets.SocketAsyncEventArgs e);" />
5248       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool SendToAsync(class System.Net.Sockets.SocketAsyncEventArgs e) cil managed" />
5249       <MemberType>Method</MemberType>
5250       <AssemblyInfo>
5251         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5252         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5253       </AssemblyInfo>
5254       <ReturnValue>
5255         <ReturnType>System.Boolean</ReturnType>
5256       </ReturnValue>
5257       <Parameters>
5258         <Parameter Name="e" Type="System.Net.Sockets.SocketAsyncEventArgs" />
5259       </Parameters>
5260       <Docs>
5261         <param name="e">To be added.</param>
5262         <summary>To be added.</summary>
5263         <returns>To be added.</returns>
5264         <remarks>To be added.</remarks>
5265       </Docs>
5266     </Member>
5267     <Member MemberName="SetSocketOption">
5268       <MemberSignature Language="C#" Value="public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, bool optionValue);" />
5269       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, bool optionValue) cil managed" />
5270       <MemberType>Method</MemberType>
5271       <AssemblyInfo>
5272         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5273         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5274       </AssemblyInfo>
5275       <ReturnValue>
5276         <ReturnType>System.Void</ReturnType>
5277       </ReturnValue>
5278       <Parameters>
5279         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
5280         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
5281         <Parameter Name="optionValue" Type="System.Boolean" />
5282       </Parameters>
5283       <Docs>
5284         <param name="optionLevel">To be added.</param>
5285         <param name="optionName">To be added.</param>
5286         <param name="optionValue">To be added.</param>
5287         <summary>To be added.</summary>
5288         <remarks>To be added.</remarks>
5289       </Docs>
5290     </Member>
5291     <Member MemberName="SetSocketOption">
5292       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, class System.Byte[] optionValue)" />
5293       <MemberSignature Language="C#" Value="public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);" />
5294       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, unsigned int8[] optionValue) cil managed" />
5295       <MemberType>Method</MemberType>
5296       <AssemblyInfo>
5297         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5298         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5299         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5300       </AssemblyInfo>
5301       <ReturnValue>
5302         <ReturnType>System.Void</ReturnType>
5303       </ReturnValue>
5304       <Parameters>
5305         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
5306         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
5307         <Parameter Name="optionValue" Type="System.Byte[]" />
5308       </Parameters>
5309       <Docs>
5310         <param name="optionLevel">To be added.</param>
5311         <param name="optionName">To be added.</param>
5312         <param name="optionValue">To be added.</param>
5313         <summary>
5314           <para>Sets socket options with values of type <see langword="Byte[]" />.</para>
5315         </summary>
5316         <remarks>
5317           <para>Socket options determine the behavior of the current
5318       instance. Multiple options can be set on the current instance by calling this method
5319       multiple times.</para>
5320           <para>
5321             <block subset="none" type="note">For socket options
5322       with values of type <see cref="T:System.Int32" /> or <see cref="T:System.Boolean" />,
5323       see the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" />(<see cref="T:System.Net.Sockets.SocketOptionLevel" />, <see cref="T:System.Net.Sockets.SocketOptionName" /> , <see cref="T:System.Int32" />) version of this method.</block>
5324           </para>
5325           <para>
5326             <block subset="none" type="note">For the <see cref="F:System.Net.Sockets.SocketOptionName.AddMembership" />, <see cref="F:System.Net.Sockets.SocketOptionName.DropMembership" />, or <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> socket options, see the
5327 <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" />(<see cref="T:System.Net.Sockets.SocketOptionLevel" />, <see cref="T:System.Net.Sockets.SocketOptionName" />, <see cref="T:System.Object" />) version of this 
5328    method.</block>
5329           </para>
5330         </remarks>
5331         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
5332         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
5333         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5334         <permission cref="T:System.Security.Permissions.SecurityPermission"> Requires permission to access unmanaged code. See <see cref="F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode" qualify="true" />.</permission>
5335       </Docs>
5336       <Excluded>0</Excluded>
5337     </Member>
5338     <Member MemberName="SetSocketOption">
5339       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, int32 optionValue)" />
5340       <MemberSignature Language="C#" Value="public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionValue);" />
5341       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, int32 optionValue) cil managed" />
5342       <MemberType>Method</MemberType>
5343       <AssemblyInfo>
5344         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5345         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5346         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5347       </AssemblyInfo>
5348       <ReturnValue>
5349         <ReturnType>System.Void</ReturnType>
5350       </ReturnValue>
5351       <Parameters>
5352         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
5353         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
5354         <Parameter Name="optionValue" Type="System.Int32" />
5355       </Parameters>
5356       <Docs>
5357         <param name="optionLevel">To be added.</param>
5358         <param name="optionName">To be added.</param>
5359         <param name="optionValue">To be added.</param>
5360         <summary>
5361           <para> Sets socket options with values of type <see cref="T:System.Int32" qualify="true" /> and <see cref="T:System.Boolean" qualify="true" />.</para>
5362         </summary>
5363         <remarks>
5364           <para>Socket options determine the behavior of the current
5365       instance. Multiple options can be set on the current instance by calling
5366       this method multiple times.</para>
5367           <para> For a socket option with a <see cref="T:System.Boolean" />
5368 data type, specify a non-zero
5369 <paramref name="optionValue" /> to enable the option, and an <paramref name="optionValue" /> equal to zero
5370 to disable the option.</para>
5371           <para>Socket options are grouped by level of protocol support.
5372    The following tables list the members of
5373    the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration
5374    supported by each member of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> enumeration.
5375    Only members that have associated values of the <see cref="T:System.Int32" qualify="true" /> and <see cref="T:System.Boolean" qualify="true" />
5376    data types are listed.</para>
5377 The following table lists the
5378 members of the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration supported by
5379 the <see langword="Socket" /> member of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> enumeration.
5380 Options that do not require permission to access unmanaged code are noted.
5381 <list type="table"><listheader><term>SocketOptionName</term><description>Description</description></listheader><item><term> Broadcast</term><description>A
5382       <see cref="T:System.Boolean" /> where <see langword="true" /> indicates broadcast messages are allowed to be sent to the socket. </description></item><item><term> Debug</term><description>A <see cref="T:System.Boolean" />
5383    where <see langword="true" /> indicates to record debugging information.</description></item><item><term> DontLinger</term><description>A <see cref="T:System.Boolean" />
5384 where <see langword="true" /> indicates to close the socket without
5385 lingering. This option does not require permission to access unmanaged code.</description></item><item><term> DontRoute</term><description>A <see cref="T:System.Boolean" />
5386 where <see langword="true" /> indicates not to route data.</description></item><item><term> Error</term><description>A
5387    <see cref="T:System.Int32" /> that
5388       contains the error code associated with the last socket error. The error
5389       code is cleared by this option. This option is read-only.</description></item><item><term> KeepAlive</term><description>A <see cref="T:System.Boolean" />
5390 where <see langword="true" /> (the default) indicates to enable
5391 keep-alives, which allows a connection to remain open after a request has completed. This option does not require permission to access unmanaged code.</description></item><item><term> OutOfBandInline</term><description>A <see cref="T:System.Boolean" />
5392 where <see langword="true" /> indicates to receive out-of-band data in the normal data stream.</description></item><item><term> ReceiveBuffer</term><description>A <see cref="T:System.Int32" /> that specifies the
5393    total per-socket buffer space reserved for receives.
5394    This option does not require permission to access unmanaged code.</description></item><item><term> ReceiveTimeout</term><description>A
5395    <see cref="T:System.Int32" /> that
5396       specifies the maximum time, in milliseconds, the <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> and <see cref="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)" /> methods will block when attempting to
5397       receive data. If data is not received within this
5398       time, a <see cref="T:System.Net.Sockets.SocketException" /> exception
5399       is thrown. This option does not require permission to access unmanaged code.</description></item><item><term> ReuseAddress</term><description>A <see cref="T:System.Boolean" />
5400 where <see langword="true" /> allows the socket to be bound to an address that is already in use.</description></item><item><term> SendBuffer</term><description>A <see cref="T:System.Int32" /> that specifies the
5401    total per-socket buffer space reserved for sends. This option does not require permission to access unmanaged code.</description></item><item><term> SendTimeout</term><description>A
5402    <see cref="T:System.Int32" /> that
5403       specifies the maximum time, in milliseconds, the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> and <see cref="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)" /> methods will block when attempting to
5404       send data. If data is not sent within this time, a <see cref="T:System.Net.Sockets.SocketException" /> exception
5405       is thrown. This option does not require permission to access unmanaged code.</description></item><item><term> Type</term><description><para>One of the values defined in the <see cref="T:System.Net.Sockets.SocketType" /> enumeration. This option is
5406       read-only.</para></description></item></list><para>The following table lists the members of the <see cref="T:System.Net.Sockets.SocketOptionName" />
5407 enumeration supported by the <see langword="IP" /> member of the <see cref="T:System.Net.Sockets.SocketOptionLevel" />
5408 enumeration. These options require permission to access unmanaged
5409 code.</para><para><list type="table"><listheader><term>SocketOptionName</term><description>Description</description></listheader><item><term> HeaderIncluded</term><description>A
5410       <see cref="T:System.Boolean" /> where <see langword="true" /> indicates
5411          the application is providing the IP header for outgoing
5412          datagrams. </description></item><item><term> IPOptions</term><description>A <see cref="T:System.Byte" /> array
5413       that specifies IP options to be inserted into outgoing
5414       datagrams.</description></item><item><term> IpTimeToLive</term><description>A <see cref="T:System.Int32" /> that specifies the
5415    time-to-live for datagrams. The time-to-live designates the number of
5416    networks on which the datagram is allowed to travel
5417    before being discarded by a
5418    router.</description></item><item><term> MulticastInterface</term><description>A
5419    <see cref="T:System.Byte" qualify="true" />
5420    array that specifies the interface for outgoing multicast
5421    packets.</description></item><item><term> MulticastLoopback</term><description>A
5422    <see cref="T:System.Boolean" /> where <see langword="true" /> enables multicast
5423       loopback. </description></item><item><term> MulticastTimeToLive</term><description>A <see cref="T:System.Int32" /> that specifies the
5424    time-to-live for multicast datagrams. </description></item><item><term> TypeOfService</term><description>A <see cref="T:System.Int32" /> that specifies the
5425    type of service field in the IP header. </description></item><item><term> UseLoopback</term><description>A
5426    <see cref="T:System.Boolean" /> where <see langword="true" /> indicates to send a copy of the
5427       data back to the
5428       sender. </description></item></list></para><para>The following table lists the members of the <see cref="T:System.Net.Sockets.SocketOptionName" />
5429 enumeration supported by the <see langword="Tcp" /> member of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> enumeration.
5430 These options do not require permission to access unmanaged code.</para><para><list type="table"><listheader><term>SocketOptionName</term><description>Description</description></listheader><item><term> BsdUrgent</term><description>A
5431       <see cref="T:System.Boolean" /> where <see langword="true" /> indicates to use urgent data
5432          as defined by IETF RFC 1222. Once enabled, this option cannot be disabled.</description></item><item><term> Expedited</term><description>A
5433       <see cref="T:System.Boolean" /> where <see langword="true" /> indicates to use expedited data as defined by IETF RFC
5434          1222. Once enabled, this option cannot be disabled.</description></item><item><term> NoDelay</term><description>A
5435       <see cref="T:System.Boolean" /> where <see langword="true" /> indicates to disable the Nagle algorithm for send
5436          coalescing.</description></item></list></para><para>The following table lists the members of the <see cref="T:System.Net.Sockets.SocketOptionName" />
5437 enumeration supported by the <see langword="Udp" /> member of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> enumeration.
5438 These options do not require permission to access unmanaged code.</para><para><list type="table"><listheader><term>SocketOptionName</term><description>Description</description></listheader><item><term> ChecksumCoverage</term><description>A
5439       <see cref="T:System.Boolean" /> that specifies UDP checksum coverage.</description></item><item><term> NoChecksum</term><description>A
5440       <see cref="T:System.Boolean" /> where <see langword="true" /> indicates to send UDP datagrams with the checksum set to zero.</description></item></list></para><block subset="none" type="note"><para>For the
5441    <see langword="AddMembership" />, <see langword="DropMembership" />, and
5442    <see langword="Linger" /> members of the <see cref="T:System.Net.Sockets.SocketOptionName" /> enumeration, see
5443       the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" />(<see cref="T:System.Net.Sockets.SocketOptionLevel" />, <see cref="T:System.Net.Sockets.SocketOptionName" />, <see cref="T:System.Object" />) version of this method.</para></block></remarks>
5444         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
5445         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
5446         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5447         <permission cref="T:System.Security.Permissions.SecurityPermission">Some options require permission to access unmanaged code. All the options that do not require permission are noted in the tables in the Description section. All options not so noted require this permission. See <see cref="F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode" qualify="true" />.</permission>
5448       </Docs>
5449       <Excluded>0</Excluded>
5450     </Member>
5451     <Member MemberName="SetSocketOption">
5452       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, object optionValue)" />
5453       <MemberSignature Language="C#" Value="public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, object optionValue);" />
5454       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetSocketOption(valuetype System.Net.Sockets.SocketOptionLevel optionLevel, valuetype System.Net.Sockets.SocketOptionName optionName, object optionValue) cil managed" />
5455       <MemberType>Method</MemberType>
5456       <AssemblyInfo>
5457         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5458         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5459         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5460       </AssemblyInfo>
5461       <ReturnValue>
5462         <ReturnType>System.Void</ReturnType>
5463       </ReturnValue>
5464       <Parameters>
5465         <Parameter Name="optionLevel" Type="System.Net.Sockets.SocketOptionLevel" />
5466         <Parameter Name="optionName" Type="System.Net.Sockets.SocketOptionName" />
5467         <Parameter Name="optionValue" Type="System.Object" />
5468       </Parameters>
5469       <Docs>
5470         <param name="optionLevel">To be added.</param>
5471         <param name="optionName">To be added.</param>
5472         <param name="optionValue">To be added.</param>
5473         <summary>
5474           <para> Sets the <see cref="F:System.Net.Sockets.SocketOptionName.AddMembership" />, <see cref="F:System.Net.Sockets.SocketOptionName.DropMembership" />, or
5475 <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> socket options.</para>
5476         </summary>
5477         <remarks>
5478           <para>Socket options determine the behavior of the current
5479       instance. Multiple options can be set on the current instance by calling this method multiple times.</para>
5480           <para>The following table summarizes the valid combinations of input parameters.</para>
5481           <list type="table">
5482             <listheader>
5483               <term>optionLevel/optionName</term>
5484               <description>optionValue</description>
5485             </listheader>
5486             <item>
5487               <term>
5488                 <see langword="Socket" />/<see langword="Linger" /></term>
5489               <description>An instance of the <see cref="T:System.Net.Sockets.LingerOption" qualify="true" /> class.</description>
5490             </item>
5491             <item>
5492               <term>
5493                 <para>
5494                   <see langword="IP" />/<see langword="AddMembership" /></para>
5495                 <para>- or -</para>
5496                 <para>
5497                   <see langword="IP" />/<see langword="DropMembership" /></para>
5498               </term>
5499               <description>An instance of the <see cref="T:System.Net.Sockets.MulticastOption" qualify="true" /> class.</description>
5500             </item>
5501           </list>
5502           <para> When setting the <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> option, a <see cref="T:System.ArgumentException" qualify="true" />
5503 exception is thrown if the <see cref="P:System.Net.Sockets.LingerOption.LingerTime" /> property of
5504 the <see cref="T:System.Net.Sockets.LingerOption" /> instance is less than zero or greater
5505 than <see cref="F:System.UInt16.MaxValue" />
5506 . </para>
5507           <block subset="none" type="note">
5508             <para> For more information on the <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> option,
5509    see the <see cref="T:System.Net.Sockets.LingerOption" /> class and the <see cref="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)" />
5510    method. </para>
5511             <para> For more information on the <see cref="F:System.Net.Sockets.SocketOptionName.AddMembership" /> and <see cref="F:System.Net.Sockets.SocketOptionName.DropMembership" /> options, see the <see cref="T:System.Net.Sockets.MulticastOption" /> class. </para>
5512             <para>For socket options
5513    with values of type <see cref="T:System.Int32" /> or <see cref="T:System.Boolean" />, see the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" />(<see cref="T:System.Net.Sockets.SocketOptionLevel" />, <see cref="T:System.Net.Sockets.SocketOptionName" />, <see cref="T:System.Int32" />) version
5514    of this method.</para>
5515           </block>
5516         </remarks>
5517         <exception cref="T:System.ArgumentException">
5518           <paramref name="optionLevel" />, <paramref name="optionName" />, or <paramref name="optionValue" /> specified an invalid value.</exception>
5519         <exception cref="T:System.ArgumentNullException">
5520           <paramref name="optionValue" /> is <see langword="null" />.</exception>
5521         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
5522         <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
5523         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5524         <permission cref="T:System.Security.Permissions.SecurityPermission">The <see cref="F:System.Net.Sockets.SocketOptionName.AddMembership" /> and <see cref="F:System.Net.Sockets.SocketOptionName.DropMembership" /> options require permission to access unmanaged code. See <see cref="F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode" qualify="true" />.</permission>
5525       </Docs>
5526       <Excluded>0</Excluded>
5527     </Member>
5528     <Member MemberName="Shutdown">
5529       <MemberSignature Language="ILASM" Value=".method public hidebysig instance void Shutdown(valuetype System.Net.Sockets.SocketShutdown how)" />
5530       <MemberSignature Language="C#" Value="public void Shutdown (System.Net.Sockets.SocketShutdown how);" />
5531       <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Shutdown(valuetype System.Net.Sockets.SocketShutdown how) cil managed" />
5532       <MemberType>Method</MemberType>
5533       <AssemblyInfo>
5534         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5535         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5536         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5537       </AssemblyInfo>
5538       <ReturnValue>
5539         <ReturnType>System.Void</ReturnType>
5540       </ReturnValue>
5541       <Parameters>
5542         <Parameter Name="how" Type="System.Net.Sockets.SocketShutdown" />
5543       </Parameters>
5544       <Docs>
5545         <param name="how">One of the values defined in the <see cref="T:System.Net.Sockets.SocketShutdown" /> enumeration.</param>
5546         <summary>
5547           <para> Terminates the ability to send or receive data on a connected socket.</para>
5548         </summary>
5549         <remarks>
5550           <para>When <paramref name="how" /> is set to <see cref="F:System.Net.Sockets.SocketShutdown.Send" /> , the socket on the
5551    other end of the connection is notified that the current instance will not
5552    send any
5553    more data. If the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method is
5554    subsequently called, a <see cref="T:System.Net.Sockets.SocketException" />
5555    
5556    exception is thrown.</para>
5557           <para>When <paramref name="how" /> is set to <see cref="F:System.Net.Sockets.SocketShutdown.Receive" />,
5558 the
5559 socket on the other end of the
5560 connection is notified that the current instance will not receive any more
5561 data. After all the data currently queued on the current instance is
5562 received, any subsequent calls to the <see cref="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method cause a <see cref="T:System.Net.Sockets.SocketException" /> exception to be thrown.</para>
5563           <para>Setting <paramref name="how" /> to <see cref="F:System.Net.Sockets.SocketShutdown.Both" /> terminates both sends and
5564 receives as described above. Once this occurs, the socket cannot
5565 be used.</para>
5566           <block subset="none" type="note">
5567             <para>To free resources allocated by the current instance, call the <see cref="M:System.Net.Sockets.Socket.Close" />
5568 method.</para>
5569             <para>Expected common usage is for the <see cref="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)" />
5570 method to be called before the <see cref="M:System.Net.Sockets.Socket.Close" /> method to
5571 ensure that all pending data is sent or received.</para>
5572           </block>
5573         </remarks>
5574         <exception cref="T:System.Net.Sockets.SocketException">An error occurred while accessing the socket. <para><block subset="none" type="note">For additional information on causes of the <see langword=" SocketException" />, see the <see cref="T:System.Net.Sockets.SocketException" qualify="true" /> class.</block></para></exception>
5575         <exception cref="T:System.ObjectDisposedException">The current instance has been disposed.</exception>
5576       </Docs>
5577       <Excluded>0</Excluded>
5578     </Member>
5579     <Member MemberName="SocketType">
5580       <MemberSignature Language="ILASM" Value=".property valuetype System.Net.Sockets.SocketType SocketType { public hidebysig specialname instance valuetype System.Net.Sockets.SocketType get_SocketType() }" />
5581       <MemberSignature Language="C#" Value="public System.Net.Sockets.SocketType SocketType { get; }" />
5582       <MemberSignature Language="ILAsm" Value=".property instance valuetype System.Net.Sockets.SocketType SocketType" />
5583       <MemberType>Property</MemberType>
5584       <AssemblyInfo>
5585         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5586         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5587         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5588       </AssemblyInfo>
5589       <ReturnValue>
5590         <ReturnType>System.Net.Sockets.SocketType</ReturnType>
5591       </ReturnValue>
5592       <Parameters />
5593       <Docs>
5594         <summary>
5595           <para> Gets the socket type of the current instance.
5596       </para>
5597         </summary>
5598         <value>
5599           <para>One of the values defined in
5600       the <see cref="T:System.Net.Sockets.SocketType" /> enumeration.</para>
5601         </value>
5602         <remarks>
5603           <para>This property is read-only.</para>
5604           <para>This property is set by the constructor for the current instance.</para>
5605         </remarks>
5606       </Docs>
5607       <Excluded>0</Excluded>
5608     </Member>
5609     <Member MemberName="SupportsIPv4">
5610       <MemberSignature Language="C#" Value="public static bool SupportsIPv4 { get; }" />
5611       <MemberSignature Language="ILAsm" Value=".property bool SupportsIPv4" />
5612       <MemberType>Property</MemberType>
5613       <AssemblyInfo>
5614         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5615         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5616         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5617       </AssemblyInfo>
5618       <ReturnValue>
5619         <ReturnType>System.Boolean</ReturnType>
5620       </ReturnValue>
5621       <Docs>
5622         <summary>To be added.</summary>
5623         <value>To be added.</value>
5624         <remarks>To be added.</remarks>
5625       </Docs>
5626     </Member>
5627     <Member MemberName="SupportsIPv6">
5628       <MemberSignature Language="C#" Value="public static bool SupportsIPv6 { get; }" />
5629       <MemberSignature Language="ILAsm" Value=".property bool SupportsIPv6" />
5630       <MemberType>Property</MemberType>
5631       <AssemblyInfo>
5632         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5633         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5634         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5635       </AssemblyInfo>
5636       <Attributes>
5637         <Attribute>
5638           <AttributeName>System.Obsolete("Use OSSupportsIPv6 instead")</AttributeName>
5639         </Attribute>
5640       </Attributes>
5641       <ReturnValue>
5642         <ReturnType>System.Boolean</ReturnType>
5643       </ReturnValue>
5644       <Docs>
5645         <summary>To be added.</summary>
5646         <value>To be added.</value>
5647         <remarks>To be added.</remarks>
5648       </Docs>
5649     </Member>
5650     <Member MemberName="System.IDisposable.Dispose">
5651       <MemberSignature Language="ILASM" Value=".method private final hidebysig virtual void System.IDisposable.Dispose()" />
5652       <MemberSignature Language="C#" Value="void IDisposable.Dispose ();" />
5653       <MemberType>Method</MemberType>
5654       <ReturnValue>
5655         <ReturnType>System.Void</ReturnType>
5656       </ReturnValue>
5657       <Parameters />
5658       <Docs>
5659         <summary>Implemented to support the <see cref="T:System.IDisposable" /> interface. [Note: For more information, see <see cref="M:System.IDisposable.Dispose" />.]</summary>
5660         <remarks>To be added.</remarks>
5661       </Docs>
5662       <Excluded>0</Excluded>
5663       <AssemblyInfo>
5664         <AssemblyVersion>1.0.5000.0</AssemblyVersion>
5665         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5666       </AssemblyInfo>
5667     </Member>
5668     <Member MemberName="Ttl">
5669       <MemberSignature Language="C#" Value="public short Ttl { get; set; }" />
5670       <MemberSignature Language="ILAsm" Value=".property instance int16 Ttl" />
5671       <MemberType>Property</MemberType>
5672       <AssemblyInfo>
5673         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5674         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5675       </AssemblyInfo>
5676       <ReturnValue>
5677         <ReturnType>System.Int16</ReturnType>
5678       </ReturnValue>
5679       <Docs>
5680         <summary>To be added.</summary>
5681         <value>To be added.</value>
5682         <remarks>To be added.</remarks>
5683       </Docs>
5684     </Member>
5685     <Member MemberName="UseOnlyOverlappedIO">
5686       <MemberSignature Language="C#" Value="public bool UseOnlyOverlappedIO { get; set; }" />
5687       <MemberSignature Language="ILAsm" Value=".property instance bool UseOnlyOverlappedIO" />
5688       <MemberType>Property</MemberType>
5689       <AssemblyInfo>
5690         <AssemblyVersion>2.0.0.0</AssemblyVersion>
5691         <AssemblyVersion>4.0.0.0</AssemblyVersion>
5692       </AssemblyInfo>
5693       <Attributes>
5694         <Attribute>
5695           <AttributeName>System.MonoTODO("This doesn't do anything on Mono yet")</AttributeName>
5696         </Attribute>
5697       </Attributes>
5698       <ReturnValue>
5699         <ReturnType>System.Boolean</ReturnType>
5700       </ReturnValue>
5701       <Docs>
5702         <summary>To be added.</summary>
5703         <value>To be added.</value>
5704         <remarks>To be added.</remarks>
5705       </Docs>
5706     </Member>
5707   </Members>
5708   <TypeExcluded>0</TypeExcluded>
5709 </Type>