| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System.Threading;
- using ENet;
- using Helper;
- using Log;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- namespace ENetCSTest
- {
- [TestClass]
- public class ENetClientServerTest
- {
- private static async void ClientEvent(IOService service, string hostName, ushort port)
- {
- var eSocket = new ESocket(service);
- await eSocket.ConnectAsync(hostName, port);
- eSocket.WriteAsync("0123456789".ToByteArray());
- var bytes = await eSocket.ReadAsync();
- CollectionAssert.AreEqual("9876543210".ToByteArray(), bytes);
- await eSocket.DisconnectAsync();
- service.Stop();
- }
- private static async void ServerEvent(IOService service, Barrier barrier)
- {
- barrier.SignalAndWait();
- var eSocket = new ESocket(service);
- await eSocket.AcceptAsync();
- // Client断开,Server端收到Disconnect事件,结束Server线程
- eSocket.ESocketEvent.Disconnect += ev => service.Stop();
- var bytes = await eSocket.ReadAsync();
- CollectionAssert.AreEqual("0123456789".ToByteArray(), bytes);
- eSocket.WriteAsync("9876543210".ToByteArray(), 0, PacketFlags.Reliable);
- }
- [TestMethod]
- public void ClientSendToServer()
- {
- const string hostName = "127.0.0.1";
- const ushort port = 8888;
- var clientHost = new IOService();
- var serverHost = new IOService(hostName, port);
- var serverThread = new Thread(() => serverHost.Start(10));
- var clientThread = new Thread(() => clientHost.Start(10));
- serverThread.Start();
- clientThread.Start();
- var barrier = new Barrier(2);
- // 往server host线程增加事件,accept
- serverHost.Events += () => ServerEvent(serverHost, barrier);
- barrier.SignalAndWait();
- // 往client host线程增加事件,client线程连接server
- clientHost.Events += () => ClientEvent(clientHost, hostName, port);
- serverThread.Join();
- clientThread.Join();
- }
- }
- }
|