private void InitDynamicMethods() { m_connectEx = (ConnectExDelegate)LoadDynamicMethod <ConnectExDelegate>(UnsafeMethods.WSAID_CONNECTEX); m_acceptEx = (AcceptExDelegate)LoadDynamicMethod <AcceptExDelegate>(UnsafeMethods.WSAID_ACCEPT_EX); }
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)); }
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); } } } }
public Connector(Socket socket) { m_connectEx = (ConnectExDelegate)socket.LoadDynamicMethod <ConnectExDelegate>(UnsafeMethods.WSAID_CONNECTEX); }