protected override bool DoConnect(EndPoint remoteAddress, EndPoint localAddress)
{
if (localAddress != null)
{
Socket.Bind(localAddress);
}
var success = false;
try
{
var eventPayload = new SocketChannelAsyncOperation(this, false);
eventPayload.RemoteEndPoint = remoteAddress;
var connected = !Socket.ConnectAsync(eventPayload);
success = true;
return connected;
}
finally
{
if (!success)
{
DoClose();
}
}
}