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
- DataServiceRequestOfT.cs
- StaticExtension.cs
- Comparer.cs
- ObjRef.cs
- PasswordPropertyTextAttribute.cs
- UidPropertyAttribute.cs
- SystemNetHelpers.cs
- DataServiceBuildProvider.cs
- StyleCollectionEditor.cs
- EncryptedKey.cs
- TextSelection.cs
- Roles.cs
- Assembly.cs
- wmiprovider.cs
- UIPropertyMetadata.cs
- DocumentViewer.cs
- Font.cs
- BasicCellRelation.cs
- ObjectSet.cs
- ConfigurationSectionHelper.cs
- PtsHelper.cs
- TrustManagerMoreInformation.cs
- DateTimeOffsetConverter.cs
- StorageConditionPropertyMapping.cs
- ImageClickEventArgs.cs
- TrackingStringDictionary.cs
- TransactionManager.cs
- OutputCacheSettings.cs
- DataControlImageButton.cs
- DataGridViewCellParsingEventArgs.cs
- HtmlButton.cs
- LockCookie.cs
- AudioLevelUpdatedEventArgs.cs
- LineServicesCallbacks.cs
- InfoCardProofToken.cs
- EditorPart.cs
- GlyphsSerializer.cs
- FormatterServices.cs
- ImagingCache.cs
- FileLogRecord.cs
- DataGridViewRowEventArgs.cs
- Assert.cs
- RegexRunnerFactory.cs
- RowBinding.cs
- XmlSchemaObject.cs
- XMLSyntaxException.cs
- LayoutManager.cs
- DirectoryNotFoundException.cs
- Nullable.cs
- SystemIPGlobalStatistics.cs
- HttpAsyncResult.cs
- HttpCacheVaryByContentEncodings.cs
- TrackingProfileDeserializationException.cs
- TerminateDesigner.cs
- XhtmlBasicValidatorAdapter.cs
- WindowsStatusBar.cs
- EnumerableCollectionView.cs
- WebServiceParameterData.cs
- UTF8Encoding.cs
- UriSectionReader.cs
- HostingEnvironmentException.cs
- UIElementAutomationPeer.cs
- RealizationDrawingContextWalker.cs
- IdentitySection.cs
- HttpListenerTimeoutManager.cs
- SizeIndependentAnimationStorage.cs
- ThaiBuddhistCalendar.cs
- QuadTree.cs
- MasterPageCodeDomTreeGenerator.cs
- AppDomainManager.cs
- Merger.cs
- RequestBringIntoViewEventArgs.cs
- RemoteWebConfigurationHostStream.cs
- MimeFormatter.cs
- FormClosingEvent.cs
- VirtualPathUtility.cs
- ContractMapping.cs
- ProfileInfo.cs
- MessageQueueAccessControlEntry.cs
- ArgumentException.cs
- SimpleExpression.cs
- StorageEntityTypeMapping.cs
- ParenExpr.cs
- BamlWriter.cs
- CookielessHelper.cs
- EntityRecordInfo.cs
- FormViewDeletedEventArgs.cs
- RSAOAEPKeyExchangeFormatter.cs
- DataStreams.cs
- GridToolTip.cs
- ResourcePool.cs
- ListViewPagedDataSource.cs
- ConnectionInterfaceCollection.cs
- DateTimeHelper.cs
- Point3DValueSerializer.cs
- PassportAuthenticationEventArgs.cs
- ViewGenResults.cs
- TableLayoutPanel.cs
- TypeValidationEventArgs.cs
- WebPartExportVerb.cs