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
- ADConnectionHelper.cs
- QuestionEventArgs.cs
- RequestQueue.cs
- TableCell.cs
- SchemaNamespaceManager.cs
- HandlerFactoryCache.cs
- SqlProvider.cs
- Environment.cs
- Row.cs
- DrawItemEvent.cs
- PasswordRecoveryDesigner.cs
- FunctionParameter.cs
- HtmlTableCellCollection.cs
- XmlDictionary.cs
- RegistryConfigurationProvider.cs
- ObjectIDGenerator.cs
- AlternationConverter.cs
- cryptoapiTransform.cs
- formatstringdialog.cs
- BypassElementCollection.cs
- DesignerHelpers.cs
- ContentType.cs
- ColumnResizeUndoUnit.cs
- Drawing.cs
- CodeVariableDeclarationStatement.cs
- DebugView.cs
- HyperLinkField.cs
- DispatcherObject.cs
- DataGridRow.cs
- Thickness.cs
- WebConvert.cs
- BasicCellRelation.cs
- StaticExtensionConverter.cs
- SqlDataSourceView.cs
- httpapplicationstate.cs
- SafeFileHandle.cs
- EdmMember.cs
- BuildProvider.cs
- BitArray.cs
- DbReferenceCollection.cs
- SymDocumentType.cs
- SafeNativeMethods.cs
- XappLauncher.cs
- WindowsListViewGroupHelper.cs
- KeySplineConverter.cs
- CounterCreationDataCollection.cs
- StringFreezingAttribute.cs
- XmlUrlResolver.cs
- DocumentEventArgs.cs
- Document.cs
- TaskFileService.cs
- EmbeddedMailObjectsCollection.cs
- ExternalCalls.cs
- DataPagerCommandEventArgs.cs
- ResourceAttributes.cs
- DiscreteKeyFrames.cs
- ToolStrip.cs
- OdbcEnvironmentHandle.cs
- SmtpTransport.cs
- MethodCallExpression.cs
- FileLevelControlBuilderAttribute.cs
- ping.cs
- SystemIcmpV4Statistics.cs
- NetworkCredential.cs
- PathParser.cs
- ScriptDescriptor.cs
- ProxySimple.cs
- CellRelation.cs
- TypeTypeConverter.cs
- WebResourceUtil.cs
- AmbientLight.cs
- WpfSharedBamlSchemaContext.cs
- CacheHelper.cs
- TemplatePartAttribute.cs
- ReceiveSecurityHeaderElementManager.cs
- SQLCharsStorage.cs
- DiagnosticTraceSource.cs
- GroupQuery.cs
- LocatorGroup.cs
- PathFigureCollection.cs
- ValidationSummary.cs
- SelfSignedCertificate.cs
- CodeAccessPermission.cs
- IODescriptionAttribute.cs
- App.cs
- DataSourceUtil.cs
- StateManagedCollection.cs
- Drawing.cs
- ChangeProcessor.cs
- ColumnWidthChangedEvent.cs
- WebPartManagerDesigner.cs
- DataControlButton.cs
- Boolean.cs
- QilPatternVisitor.cs
- BreakRecordTable.cs
- UnaryQueryOperator.cs
- StoryFragments.cs
- RSAProtectedConfigurationProvider.cs
- BindingsSection.cs
- PasswordDeriveBytes.cs