ENetClientServerTest.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using System.Threading;
  3. using ENet;
  4. using Helper;
  5. using Log;
  6. using Microsoft.VisualStudio.TestTools.UnitTesting;
  7. namespace ENetCSTest
  8. {
  9. [TestClass]
  10. public class ENetClientServerTest
  11. {
  12. private static async void Client(ClientHost host, Address address)
  13. {
  14. try
  15. {
  16. Logger.Debug("Client Connect");
  17. var peer = await host.ConnectAsync(address);
  18. Logger.Debug("Client Connect OK");
  19. var sPacket = new Packet("0123456789".ToByteArray(), PacketFlags.Reliable);
  20. peer.Send(0, sPacket);
  21. Logger.Debug("Client Send OK");
  22. var rPacket = await peer.ReceiveAsync();
  23. Logger.Debug("Client Receive OK");
  24. CollectionAssert.AreEqual("9876543210".ToByteArray(), rPacket.Bytes);
  25. await peer.DisconnectLaterAsync();
  26. Logger.Debug("Client Disconnect OK");
  27. }
  28. catch (ENetException e)
  29. {
  30. Assert.Fail("Client ENetException: {0}", e.Message);
  31. }
  32. finally
  33. {
  34. host.Stop();
  35. }
  36. }
  37. private static async void Server(ServerHost host)
  38. {
  39. try
  40. {
  41. Logger.Debug("Server Accept");
  42. var peer = await host.AcceptAsync();
  43. Logger.Debug("Server Accept OK");
  44. var rPacket = await peer.ReceiveAsync();
  45. Logger.Debug("Server Receive OK");
  46. CollectionAssert.AreEqual("0123456789".ToByteArray(), rPacket.Bytes);
  47. var sPacket = new Packet("9876543210".ToByteArray(), PacketFlags.Reliable);
  48. peer.Send(0, sPacket);
  49. Logger.Debug("Server Send OK");
  50. await peer.DisconnectLaterAsync();
  51. Logger.Debug("Server Disconnected OK");
  52. }
  53. catch (ENetException e)
  54. {
  55. Assert.Fail("Server ENetException: {0}", e.Message);
  56. }
  57. finally
  58. {
  59. host.Stop();
  60. }
  61. }
  62. [TestMethod]
  63. public void ClientSendToServer()
  64. {
  65. var address = new Address { HostName = "127.0.0.1", Port = 8888 };
  66. var clientHost = new ClientHost();
  67. var serverHost = new ServerHost(address);
  68. var server = new Thread(() => serverHost.Start(10));
  69. var client = new Thread(() => clientHost.Start(10));
  70. serverHost.Events += () => Server(serverHost);
  71. clientHost.Events += () => Client(clientHost, address);
  72. server.Start();
  73. client.Start();
  74. server.Join();
  75. client.Join();
  76. }
  77. }
  78. }