-
- public static void ReceiveCallback (IAsyncResult AsyncCall)
- {
- byte[] bytes = new byte [1024];
-
- Socket listener = (Socket)AsyncCall.AsyncState;
- Socket client = listener.EndAccept (AsyncCall);
-
- client.Receive (bytes, bytes.Length, 0);
- client.Close ();
+
+ [Test]
+ public void BeginConnectToIPV4EndPointUsingDualModelSocket () {
+ using (var server = new Socket (SocketType.Stream, ProtocolType.Tcp))
+ using (var client = new Socket (SocketType.Stream, ProtocolType.Tcp)) {
+ var host = new IPEndPoint (IPAddress.Loopback, NetworkHelpers.FindFreePort ());
+
+ server.Bind (host);
+ server.Listen (0);
+
+ var ep = server.LocalEndPoint as IPEndPoint;
+
+ BCCalledBack.Reset ();
+ var ar1 = client.BeginConnect (ep, BCCallback, client);
+ Assert.IsTrue (BCCalledBack.WaitOne (10000), "#1");
+ client.Disconnect (true);
+
+ BCCalledBack.Reset ();
+ var ar2 = client.BeginConnect (IPAddress.Loopback, ep.Port, BCCallback, client);
+ Assert.IsTrue (BCCalledBack.WaitOne (10000), "#2");
+ client.Disconnect (true);
+
+ BCCalledBack.Reset ();
+ var ar3 = client.BeginConnect (new [] {IPAddress.Loopback}, ep.Port, BCCallback, client);
+ Assert.IsTrue (BCCalledBack.WaitOne (10000), "#2");
+ client.Disconnect (true);
+ }