Beispiel #1
0
        private void InitDynamicMethods()
        {
            m_connectEx =
                (ConnectExDelegate)LoadDynamicMethod <ConnectExDelegate>(UnsafeMethods.WSAID_CONNECTEX);

            m_acceptEx =
                (AcceptExDelegate)LoadDynamicMethod <AcceptExDelegate>(UnsafeMethods.WSAID_ACCEPT_EX);
        }
Beispiel #2
0
    private void InitDynamicMethods()
    {
      m_connectEx =
        (ConnectExDelegate)LoadDynamicMethod(UnsafeMethods.WSAID_CONNECTEX, typeof(ConnectExDelegate));

      m_acceptEx =
        (AcceptExDelegate)LoadDynamicMethod(UnsafeMethods.WSAID_ACCEPT_EX, typeof(AcceptExDelegate));
    }
        internal bool ConnectEx(SafeCloseSocket socketHandle,
                                IntPtr socketAddress,
                                int socketAddressSize,
                                IntPtr buffer,
                                int dataLength,
                                out int bytesSent,
                                SafeHandle overlapped)
        {
            EnsureDynamicWinsockMethods();
            ConnectExDelegate connectEx = _dynamicWinsockMethods.GetDelegate <ConnectExDelegate>(socketHandle);

            return(connectEx(socketHandle, socketAddress, socketAddressSize, buffer, dataLength, out bytesSent, overlapped));
        }
Beispiel #4
0
 private void EnsureConnectEx(SafeCloseSocket socketHandle)
 {
     if (this.connectEx == null)
     {
         lock (this.lockObject)
         {
             if (this.connectEx == null)
             {
                 Guid   guid = new Guid("{0x25a207b9,0x0ddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}");
                 IntPtr ptr  = this.LoadDynamicFunctionPointer(socketHandle, ref guid);
                 this.connectEx = (ConnectExDelegate)Marshal.GetDelegateForFunctionPointer(ptr, typeof(ConnectExDelegate));
             }
         }
     }
 }
 private void EnsureConnectEx(SafeCloseSocket socketHandle)
 {
     if (_connectEx == null)
     {
         lock (_lockObject)
         {
             if (_connectEx == null)
             {
                 Guid   guid         = new Guid("{0x25a207b9,0x0ddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}");
                 IntPtr ptrConnectEx = LoadDynamicFunctionPointer(socketHandle, ref guid);
                 _connectEx = Marshal.GetDelegateForFunctionPointer <ConnectExDelegate>(ptrConnectEx);
             }
         }
     }
 }
Beispiel #6
0
 public Connector(Socket socket)
 {
     m_connectEx =
         (ConnectExDelegate)socket.LoadDynamicMethod <ConnectExDelegate>(UnsafeMethods.WSAID_CONNECTEX);
 }