ENetClientServerTest.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Threading;
  3. using System.Windows.Threading;
  4. using ENet;
  5. using Microsoft.VisualStudio.TestTools.UnitTesting;
  6. namespace ENetCSTest
  7. {
  8. [TestClass]
  9. public class ENetClientServerTest
  10. {
  11. private static async void Connect(Host host, Address address)
  12. {
  13. var peer = await host.ConnectAsync(address);
  14. var sPacket = new Packet("0123456789", PacketFlags.Reliable);
  15. peer.Send(0, sPacket);
  16. var rPacket = await peer.ReceiveAsync();
  17. Assert.AreEqual("9876543210", rPacket.Bytes.ToString());
  18. await peer.DisconnectLaterAsync();
  19. }
  20. private static async void Accept(Host host)
  21. {
  22. var peer = await host.AcceptAsync();
  23. var rPacket = await peer.ReceiveAsync();
  24. Assert.AreEqual("0123456789", rPacket.Bytes.ToString());
  25. var sPacket = new Packet("9876543210", PacketFlags.Reliable);
  26. peer.Send(0, sPacket);
  27. await peer.DisconnectLaterAsync();
  28. }
  29. [TestMethod]
  30. public void ClientSendToServer()
  31. {
  32. Library.Initialize();
  33. var address = new Address { HostName = "127.0.0.1", Port = 8888 };
  34. var serverHost = new Host();
  35. var clientHost = new Host(address);
  36. var server = new Thread(() => serverHost.Run(10));
  37. var client = new Thread(() => clientHost.Run(10));
  38. serverHost.Events += () => Accept(serverHost);
  39. clientHost.Events += () => Connect(clientHost, address);
  40. server.Start();
  41. client.Start();
  42. server.Join();
  43. client.Join();
  44. }
  45. }
  46. }