Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- LinearGradientBrush.cs
- QueryParameter.cs
- DataGridRowDetailsEventArgs.cs
- WebBrowserNavigatingEventHandler.cs
- MarkupExtensionParser.cs
- Validator.cs
- Simplifier.cs
- CompensatableSequenceActivity.cs
- _AutoWebProxyScriptWrapper.cs
- UshortList2.cs
- ArgIterator.cs
- COM2PictureConverter.cs
- TreeNodeStyle.cs
- XamlVector3DCollectionSerializer.cs
- _ChunkParse.cs
- MouseButtonEventArgs.cs
- MimeBasePart.cs
- Vector3D.cs
- HttpResponseBase.cs
- FrameworkRichTextComposition.cs
- UIPermission.cs
- ScrollEvent.cs
- DataColumn.cs
- RestHandlerFactory.cs
- AssemblyCache.cs
- BackgroundWorker.cs
- ScriptingProfileServiceSection.cs
- Registry.cs
- TextBoxAutoCompleteSourceConverter.cs
- FontFamilyValueSerializer.cs
- ReferenceService.cs
- DetailsViewDeletedEventArgs.cs
- DateTimeSerializationSection.cs
- SqlTriggerContext.cs
- EnvironmentPermission.cs
- XmlSchemaGroup.cs
- ObjectManager.cs
- ConnectionManagementElementCollection.cs
- DbFunctionCommandTree.cs
- OperationCanceledException.cs
- StructureChangedEventArgs.cs
- XmlSerializerAssemblyAttribute.cs
- ContainerSelectorBehavior.cs
- Binding.cs
- MessagePropertyDescriptionCollection.cs
- IDataContractSurrogate.cs
- AuthenticodeSignatureInformation.cs
- PropertyToken.cs
- AssemblyBuilderData.cs
- DirectoryRedirect.cs
- DataGridPageChangedEventArgs.cs
- SudsWriter.cs
- XmlSchemaNotation.cs
- TreeNodeClickEventArgs.cs
- TraceShell.cs
- PropertyCollection.cs
- XomlDesignerLoader.cs
- ExpanderAutomationPeer.cs
- ColumnResult.cs
- ContextMenu.cs
- hwndwrapper.cs
- GraphicsPath.cs
- TextWriterEngine.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- SoapFault.cs
- HijriCalendar.cs
- XmlSchemaValidator.cs
- AnnotationHighlightLayer.cs
- IERequestCache.cs
- PagesSection.cs
- ZipArchive.cs
- DataGridViewColumn.cs
- ReturnValue.cs
- Rect3DConverter.cs
- HtmlInputReset.cs
- TdsParser.cs
- FileEnumerator.cs
- SqlAggregateChecker.cs
- SqlDataSourceSelectingEventArgs.cs
- ObservableDictionary.cs
- PerfCounters.cs
- CalloutQueueItem.cs
- PackageController.cs
- LinearKeyFrames.cs
- MouseOverProperty.cs
- Event.cs
- QueryRewriter.cs
- controlskin.cs
- SslStream.cs
- CapacityStreamGeometryContext.cs
- RowToParametersTransformer.cs
- ErrorReporting.cs
- DisposableCollectionWrapper.cs
- ListBindingConverter.cs
- ContainerUtilities.cs
- HttpModulesSection.cs
- AsymmetricKeyExchangeFormatter.cs
- EmptyEnumerable.cs
- DataBindingList.cs
- PrimaryKeyTypeConverter.cs