Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Net / System / Net / Sockets / _ConnectOverlappedAsyncResult.cs / 1 / _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
- EncoderExceptionFallback.cs
- DataObject.cs
- SortQuery.cs
- CodeAccessPermission.cs
- ServiceOperationInvoker.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- HiddenField.cs
- TableLayoutPanelCellPosition.cs
- DataGridViewCellParsingEventArgs.cs
- CrossSiteScriptingValidation.cs
- ChangeTracker.cs
- Int32CAMarshaler.cs
- WebDisplayNameAttribute.cs
- ConfigurationSection.cs
- SingleConverter.cs
- ScriptControlDescriptor.cs
- TextParaLineResult.cs
- Matrix.cs
- CodeTypeConstructor.cs
- OrderedHashRepartitionStream.cs
- FrameDimension.cs
- State.cs
- ISessionStateStore.cs
- XmlILTrace.cs
- FlowLayoutSettings.cs
- TypeGeneratedEventArgs.cs
- TcpSocketManager.cs
- OdbcConnectionPoolProviderInfo.cs
- DataGridViewCellFormattingEventArgs.cs
- ProfileGroupSettings.cs
- SR.cs
- CurrencyWrapper.cs
- SqlInfoMessageEvent.cs
- UnsafeNativeMethods.cs
- OAVariantLib.cs
- XmlSchemaDocumentation.cs
- UInt16.cs
- IOException.cs
- MaskedTextBoxTextEditor.cs
- TextElementCollection.cs
- Validator.cs
- ListBase.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- Confirm.cs
- RIPEMD160.cs
- HostingEnvironmentWrapper.cs
- CodeDirectionExpression.cs
- SQLUtility.cs
- GridView.cs
- TagPrefixInfo.cs
- NonceToken.cs
- ExpressionWriter.cs
- SqlAggregateChecker.cs
- TextUtf8RawTextWriter.cs
- WindowsToolbarAsMenu.cs
- TextTreeNode.cs
- PropertyInformation.cs
- Merger.cs
- ToolZone.cs
- GcSettings.cs
- StreamWriter.cs
- DirectoryObjectSecurity.cs
- FamilyCollection.cs
- AuthorizationSection.cs
- SafeNativeMethods.cs
- JavaScriptObjectDeserializer.cs
- MetadataStore.cs
- ContextMenuAutomationPeer.cs
- SqlTypeSystemProvider.cs
- DataGridParentRows.cs
- ThreadPool.cs
- SemaphoreFullException.cs
- LogicalExpressionTypeConverter.cs
- AttributeProviderAttribute.cs
- StorageComplexTypeMapping.cs
- ButtonStandardAdapter.cs
- InputLanguageSource.cs
- SafeNativeMethods.cs
- DiscoveryClientDuplexChannel.cs
- Function.cs
- ConnectionStringsExpressionBuilder.cs
- XmlSchemaAttributeGroup.cs
- SoapSchemaMember.cs
- SelectingProviderEventArgs.cs
- OracleBFile.cs
- PngBitmapDecoder.cs
- TextTreeExtractElementUndoUnit.cs
- OleDbCommand.cs
- ProvidePropertyAttribute.cs
- dataprotectionpermissionattribute.cs
- ExpressionPrinter.cs
- Matrix3DValueSerializer.cs
- ToolStripArrowRenderEventArgs.cs
- XmlNode.cs
- XmlSortKeyAccumulator.cs
- RSAOAEPKeyExchangeFormatter.cs
- SmiMetaDataProperty.cs
- DesignTableCollection.cs
- FileSystemEventArgs.cs
- BrowsableAttribute.cs