public IAsyncResult BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback callback, object state) { AsyncSendRegistration asyncRegistration = new AsyncSendRegistration(this, buffer, offset, size, socketFlags, callback, state); IntPtr pointer = GCHandle.ToIntPtr(GCHandle.Alloc(asyncRegistration)); if (UDT_ERROR == API_BeginSend(_handle, buffer, size, (int)socketFlags, pointer)) { throw new UDTSocketException(); } // HACK !!!!! _processor.AddCommand(asyncRegistration); return(null); }
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback callback, object state) { AsyncSendRegistration asyncRegistration = new AsyncSendRegistration(this, buffer, offset, size, socketFlags, callback, state); IntPtr pointer = GCHandle.ToIntPtr(GCHandle.Alloc(asyncRegistration)); if (UDT_ERROR == API_BeginSend(_handle, buffer, size, (int)socketFlags, pointer)) throw new UDTSocketException(); // HACK !!!!! _processor.AddCommand(asyncRegistration); return null; }
private static void UDTEndSendCallback(IntPtr pointer) { AsyncSendRegistration asyncRegistration = (AsyncSendRegistration)GCHandle.FromIntPtr(pointer).Target; _processor.AddCommand(asyncRegistration); }