void OnEnable() { baseServer.Bind(NetPacketType.PeerConnect, OnClientConnected); baseServer.Bind(NetPacketType.PeerDisconnect, OnClientDisconnected); baseServer.Bind(NetPacketType.NetError, OnNetworkError); baseServer.BindDefault(OnUnknownDataReceived); }
public static void Main(string[] args) { try { using (var server = new NetServer()) { server.Listen((self) => { System.Console.WriteLine("Server is listening on: " + self.Address.ToString()); }); server.Connect((channel) => { System.Console.WriteLine("Client connected."); channel.Fault((c, exception) => { System.Console.WriteLine(((MiniNet.Exceptions.SocketException)exception).StatusCode.ToString()); System.Console.WriteLine(exception.ToString()); }); var encoding = Encoding.Unicode; var decoder = new StringDecoder(encoding); var encoder = new StringEncoder(encoding); //channel.Authenticate(); channel.Start(); channel.Message((self, buffer) => { if (buffer.Size > 0) { var str = decoder.Process(buffer); System.Console.WriteLine(str + "-" + buffer.Size + "-"); System.Console.WriteLine(buffer.DumpHex(int.MaxValue)); } }); /*var payload = "Server: Hello Client"; * var message = MiniNet.Buffers.Buffer.Create(encoding.GetByteCount(payload)); * * encoder.Process(message, payload); * channel.SendAsync(message);*/ Thread.Sleep(1000); //channel.Close(); }); server.Fault((exception) => { System.Console.WriteLine(exception.ToString()); }); server.Bind(8080, "localhost"); using (var client = new TcpClient()) { client.NoDelay = true; client.Connect(server.Address.Host, server.Address.Port); Thread.Sleep(100); var encoding = new UnicodeEncoding(false, false, true); var stream = client.GetStream(); //var reader = new StreamReader(stream, encoding); var writer = new StreamWriter(stream, encoding) { AutoFlush = true }; for (int i = 1; i <= 4; i++) { /*var bytesReceived = new byte[1024]; * var lengthReceived = client.GetStream().Read(bytesReceived, 0, bytesReceived.Length); * if (lengthReceived > 0) * { * var message = encoding.GetString(bytesReceived, 0, lengthReceived); * System.Console.WriteLine(MiniNet.Buffers.Buffer.DumpHex(bytesReceived, 0, lengthReceived, int.MaxValue)); * System.Console.WriteLine("'" + message + "'" + lengthReceived); * }*/ writer.Write("Client: Hello Server"); } Thread.Sleep(100); System.Console.WriteLine("Press ENTER to quit"); System.Console.ReadLine(); client.Close(); } } } catch (Exception ex) { System.Console.WriteLine(ex.ToString()); System.Console.WriteLine(ex.StackTrace); } }