internal void StartOperationConnect() { // Remember the operation type. _completedOperation = SocketAsyncOperation.Connect; _multipleConnect = null; _connectSocket = null; InnerStartOperationConnect(); }
public static bool ConnectAsync(SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e) { bool retval; // Throw if multiple buffers specified. if (e.m_BufferList != null) { throw new ArgumentException(SR.GetString(SR.net_multibuffernotsupported), "BufferList"); } // Throw if RemoteEndPoint is null. if (e.RemoteEndPoint == null) { throw new ArgumentNullException("remoteEP"); } EndPoint endPointSnapshot = e.RemoteEndPoint; DnsEndPoint dnsEP = endPointSnapshot as DnsEndPoint; if (dnsEP != null) { Socket attemptSocket = null; MultipleConnectAsync multipleConnectAsync = null; if (dnsEP.AddressFamily == AddressFamily.Unspecified) { multipleConnectAsync = new MultipleSocketMultipleConnectAsync(socketType, protocolType); } else { attemptSocket = new Socket(dnsEP.AddressFamily, socketType, protocolType); multipleConnectAsync = new SingleSocketMultipleConnectAsync(attemptSocket, false); } e.StartOperationCommon(attemptSocket); e.StartOperationWrapperConnect(multipleConnectAsync); retval = multipleConnectAsync.StartConnectAsync(e, dnsEP); } else { Socket attemptSocket = new Socket(endPointSnapshot.AddressFamily, socketType, protocolType); retval = attemptSocket.ConnectAsync(e); } return(retval); }
internal void StartOperationWrapperConnect(MultipleConnectAsync args) { SetLastOperation(SocketAsyncOperation.Connect); //m_MultipleConnect = args; }
internal void StartOperationWrapperConnect(MultipleConnectAsync args) { _completedOperation = SocketAsyncOperation.Connect; _multipleConnect = args; _connectSocket = null; }
internal void StartOperationWrapperConnect(MultipleConnectAsync args) { m_CompletedOperation = SocketAsyncOperation.Connect; m_MultipleConnect = args; m_ConnectSocket = null; }
internal void StartOperationConnect() { // Remember the operation type. m_CompletedOperation = SocketAsyncOperation.Connect; m_MultipleConnect = null; m_ConnectSocket = null; // ConnectEx uses a sockaddr buffer containing he remote address to which to connect. // It can also optionally take a single buffer of data to send after the connection is complete. // // The sockaddr is pinned with a GCHandle to avoid having to use the object array form of UnsafePack. // The optional buffer is pinned using the Overlapped.UnsafePack method that takes a single object to pin. PinSocketAddressBuffer(); CheckPinNoBuffer(); }
internal void StartOperationConnect() { this.m_CompletedOperation = SocketAsyncOperation.Connect; this.m_MultipleConnect = null; this.m_ConnectSocket = null; this.PinSocketAddressBuffer(); this.CheckPinNoBuffer(); }
internal void StartOperationWrapperConnect (MultipleConnectAsync args) { SetLastOperation (SocketAsyncOperation.Connect); //m_MultipleConnect = args; }