ENetClientServerTest.cs 1.7 KB

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