private void DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, bool dualModeServer)
{
int port;
Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
using (SocketServer server = new SocketServer(_log, listenOn, dualModeServer, out port))
{
ManualResetEvent waitHandle = new ManualResetEvent(false);
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
args.Completed += new EventHandler<SocketAsyncEventArgs>(AsyncCompleted);
args.RemoteEndPoint = new IPEndPoint(connectTo, port);
args.UserToken = waitHandle;
socket.ConnectAsync(args);
Assert.True(waitHandle.WaitOne(TestSettings.PassingTestTimeout), "Timed out while waiting for connection");
if (args.SocketError != SocketError.Success)
{
throw new SocketException((int)args.SocketError);
}
Assert.True(socket.Connected);
}
}