public static void RunTwoPartyNetwork(Action <ITwoPartyNetworkSession> perPartyAction) { Task <TcpTwoPartyNetworkSession>[] sessionTasks = { TcpTwoPartyNetworkSession.ConnectLoopbackAsync(new Party(0), Port), TcpTwoPartyNetworkSession.AcceptLoopbackAsync(new Party(1), Port) }; RunNetwork(sessionTasks, perPartyAction); }
public static ITwoPartyNetworkSession EstablishTwoParty() { try { return(TcpTwoPartyNetworkSession.AcceptAsync(new Party(1), Port).Result); } catch (Exception) { return(TcpTwoPartyNetworkSession.ConnectAsync(new Party(0), IPAddress.Loopback, Port).Result); } }
public void TestTcpTwoPartyNetworkSession() { Task <TcpTwoPartyNetworkSession> firstSessionTask = CreateFirstTwoPartySessionAsync(); Task <TcpTwoPartyNetworkSession> secondSessionTask = CreateSecondTwoPartySessionAsync(); using TcpTwoPartyNetworkSession firstSession = firstSessionTask.Result; using TcpTwoPartyNetworkSession secondSession = secondSessionTask.Result; Assert.AreEqual(FirstParty, firstSession.LocalParty); Assert.AreEqual(SecondParty, firstSession.RemoteParty); Assert.AreEqual(SecondParty, secondSession.LocalParty); Assert.AreEqual(FirstParty, secondSession.RemoteParty); }
public void TestTcpTwoPartyNetworkSession() { Task <TcpTwoPartyNetworkSession> firstSessionTask = TcpTwoPartyNetworkSession.ConnectAsync(FirstParty, IPAddress.Loopback, Port); Task <TcpTwoPartyNetworkSession> secondSessionTask = TcpTwoPartyNetworkSession.AcceptAsync(SecondParty, Port); TcpTwoPartyNetworkSession firstSession = firstSessionTask.Result; TcpTwoPartyNetworkSession secondSession = secondSessionTask.Result; Assert.AreEqual(FirstParty, firstSession.LocalParty); Assert.AreEqual(SecondParty, firstSession.RemoteParty); Assert.AreEqual(SecondParty, secondSession.LocalParty); Assert.AreEqual(FirstParty, secondSession.RemoteParty); firstSession.Dispose(); secondSession.Dispose(); }
private static Task <TcpTwoPartyNetworkSession> CreateSecondTwoPartySessionAsync() { return(TcpTwoPartyNetworkSession.AcceptLoopbackAsync(SecondParty, Port)); }
private static Task <TcpTwoPartyNetworkSession> CreateFirstTwoPartySessionAsync() { return(TcpTwoPartyNetworkSession.ConnectLoopbackAsync(FirstParty, Port)); }