Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Net / System / Net / Sockets / _ConnectOverlappedAsyncResult.cs / 5 / _ConnectOverlappedAsyncResult.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Sockets { using System; using System.Net; using System.Runtime.InteropServices; using System.Threading; using Microsoft.Win32; // // ConnectOverlappedAsyncResult - used to take care of storage for async Socket BeginAccept call. // internal class ConnectOverlappedAsyncResult : BaseOverlappedAsyncResult { private EndPoint m_EndPoint; internal ConnectOverlappedAsyncResult(Socket socket, EndPoint endPoint, Object asyncState, AsyncCallback asyncCallback): base(socket,asyncState,asyncCallback) { m_EndPoint = endPoint; } // // This method is called by base.CompletionPortCallback base.OverlappedCallback as part of IO completion // internal override object PostCompletion(int numBytes) { SocketError errorCode = (SocketError)ErrorCode; Socket socket = (Socket)AsyncObject; if (errorCode==SocketError.Success) { //set the socket context try { errorCode = UnsafeNclNativeMethods.OSSOCK.setsockopt( socket.SafeHandle, SocketOptionLevel.Socket, SocketOptionName.UpdateConnectContext, null, 0); if (errorCode == SocketError.SocketError) errorCode = (SocketError) Marshal.GetLastWin32Error(); } catch (ObjectDisposedException) { errorCode = SocketError.OperationAborted; } ErrorCode = (int) errorCode; } if (errorCode==SocketError.Success) { socket.SetToConnected(); return socket; } return null; } internal EndPoint RemoteEndPoint { get { return m_EndPoint; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Sockets { using System; using System.Net; using System.Runtime.InteropServices; using System.Threading; using Microsoft.Win32; // // ConnectOverlappedAsyncResult - used to take care of storage for async Socket BeginAccept call. // internal class ConnectOverlappedAsyncResult : BaseOverlappedAsyncResult { private EndPoint m_EndPoint; internal ConnectOverlappedAsyncResult(Socket socket, EndPoint endPoint, Object asyncState, AsyncCallback asyncCallback): base(socket,asyncState,asyncCallback) { m_EndPoint = endPoint; } // // This method is called by base.CompletionPortCallback base.OverlappedCallback as part of IO completion // internal override object PostCompletion(int numBytes) { SocketError errorCode = (SocketError)ErrorCode; Socket socket = (Socket)AsyncObject; if (errorCode==SocketError.Success) { //set the socket context try { errorCode = UnsafeNclNativeMethods.OSSOCK.setsockopt( socket.SafeHandle, SocketOptionLevel.Socket, SocketOptionName.UpdateConnectContext, null, 0); if (errorCode == SocketError.SocketError) errorCode = (SocketError) Marshal.GetLastWin32Error(); } catch (ObjectDisposedException) { errorCode = SocketError.OperationAborted; } ErrorCode = (int) errorCode; } if (errorCode==SocketError.Success) { socket.SetToConnected(); return socket; } return null; } internal EndPoint RemoteEndPoint { get { return m_EndPoint; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TranslateTransform.cs
- QueryStringParameter.cs
- PanelStyle.cs
- QueryGenerator.cs
- TextRange.cs
- DesignerProperties.cs
- ErrorsHelper.cs
- EmptyCollection.cs
- EqualityComparer.cs
- InkCanvas.cs
- DomNameTable.cs
- SpecialFolderEnumConverter.cs
- CallbackHandler.cs
- httpapplicationstate.cs
- Char.cs
- DBConnection.cs
- InkCanvasSelectionAdorner.cs
- BaseValidator.cs
- SafeEventHandle.cs
- SqlDataSourceSelectingEventArgs.cs
- TextChange.cs
- WebPartEditVerb.cs
- TableProviderWrapper.cs
- GenericWebPart.cs
- NativeMethods.cs
- HashRepartitionEnumerator.cs
- SynchronousChannelMergeEnumerator.cs
- ReadingWritingEntityEventArgs.cs
- MarshalDirectiveException.cs
- WorkflowRuntimeBehavior.cs
- ReverseInheritProperty.cs
- Subtree.cs
- NavigationProgressEventArgs.cs
- OracleColumn.cs
- CodeGenerator.cs
- FixedTextContainer.cs
- ResourceAttributes.cs
- Menu.cs
- RowToFieldTransformer.cs
- CollectionBase.cs
- AsyncOperationContext.cs
- ProfilePropertyNameValidator.cs
- StringWriter.cs
- CodePageEncoding.cs
- GZipStream.cs
- DefaultExpressionVisitor.cs
- EnumValAlphaComparer.cs
- LoginCancelEventArgs.cs
- ControlUtil.cs
- WebPartTransformerAttribute.cs
- StringFreezingAttribute.cs
- StaticExtension.cs
- HMACSHA256.cs
- TreeNodeSelectionProcessor.cs
- PerformanceCountersElement.cs
- ResetableIterator.cs
- DateTimeParse.cs
- UnmanagedHandle.cs
- WebBrowserContainer.cs
- _ConnectionGroup.cs
- TabletDeviceInfo.cs
- glyphs.cs
- InvokeProviderWrapper.cs
- XmlNotation.cs
- HttpContext.cs
- wgx_sdk_version.cs
- RepeatButton.cs
- XmlAnyAttributeAttribute.cs
- XsdDateTime.cs
- WindowsUpDown.cs
- ComboBoxItem.cs
- DataListItemCollection.cs
- ImageSourceValueSerializer.cs
- Lookup.cs
- BinaryCommonClasses.cs
- GradientStop.cs
- XmlSchemaGroupRef.cs
- DBParameter.cs
- Stylesheet.cs
- TextDataBindingHandler.cs
- DataColumnCollection.cs
- Attributes.cs
- FontInfo.cs
- BinaryObjectWriter.cs
- SqlCommandSet.cs
- CompModHelpers.cs
- PointLight.cs
- RotationValidation.cs
- ToolStripMenuItemDesigner.cs
- ProviderException.cs
- WebConfigurationHost.cs
- MessageSecurityTokenVersion.cs
- ColorMap.cs
- MetabaseReader.cs
- Activity.cs
- UserPrincipalNameElement.cs
- AmbientLight.cs
- QueuePathEditor.cs
- BaseParser.cs
- Claim.cs