private static void ServerOnConnected(SocketClientId id)
        {
            Console.WriteLine($"User connected with id: {id}");

            var packetWriter = new PacketWriter(0x5000);

            packetWriter.WriteBoolean(true);

            _server.Send(id, packetWriter);
        }
Exemple #2
0
        public void Disconnect(SocketClientId id)
        {
            var socketClient = _socketClients.Find(i => i.Id == id);

            if (socketClient == null)
            {
                throw new SocketServerClientNotFoundException(id);
            }

            socketClient.Disconnect();
        }
Exemple #3
0
        public async Task Send(SocketClientId id, byte[] buffer)
        {
            var socketClient = _socketClients.Find(i => i.Id == id);

            if (socketClient == null)
            {
                throw new SocketServerClientNotFoundException(id);
            }

            await socketClient.Send(buffer);
        }
Exemple #4
0
        private void SocketServerOnDataReceived(SocketClientId id, byte[] data)
        {
            var memoryStream = new MemoryStream(data);
            var binaryReader = new BinaryReader(memoryStream);

            while (memoryStream.Position < memoryStream.Length)
            {
                var length = binaryReader.ReadUInt16() + 6;
                memoryStream.Seek(-2, SeekOrigin.Current);

                var packetBytes = binaryReader.ReadBytes(length);

                OnDataReceived(id, new PacketReader(packetBytes));
            }
        }
        private static void ServerOnDataReceived(SocketClientId id, PacketReader packetReader)
        {
            Console.WriteLine($"User sent data: {BitConverter.ToString(packetReader.GetBuffer())} with id: {id}");

            if (packetReader.Opcode == 0x2001)
            {
                var packetWriter = new PacketWriter(0x2001);

                packetWriter.WriteAscii("GatewayServer");
                packetWriter.WriteBoolean(true);

                _server.Send(id, packetWriter);
            }
            else if (packetReader.Opcode == 0x6100)
            {
                var packetWriter = new PacketWriter(0xa100, true);

                packetWriter.WriteUInt8(1);

                _server.Send(id, packetWriter);
            }
            else if (packetReader.Opcode == 0x6104)
            {
                var items = new List <(string title, string content)>
                {
                    ("welcome to kral emulator", "silkroad scene is shit<br>welcome the <font color = red>kynq</font>"),
                    ("3", "4")
                };

                var packetWriter = new PacketWriter(0xa104, true);
                packetWriter.WriteUInt8((byte)items.Count);

                foreach (var item in items)
                {
                    packetWriter.WriteAscii(item.title);
                    packetWriter.WriteAscii(item.content);
                    packetWriter.WriteUInt16(2019);
                    packetWriter.WriteUInt16(12);
                    packetWriter.WriteUInt16(8);
                    packetWriter.WriteUInt16(21);
                    packetWriter.WriteUInt16(22);
                    packetWriter.WriteUInt16(0);
                    packetWriter.WriteUInt32(0);
                }

                _server.Send(id, packetWriter);
            }
        }
Exemple #6
0
 public SocketServerClientNotFoundException(SocketClientId id)
     : base($"Failed to find socket client with id: {id}.")
 {
 }
Exemple #7
0
 private void OnDisconnected(SocketClientId id, SocketClientDisconnectType disconnectType)
 {
     Disconnected?.Invoke(id, disconnectType);
 }
Exemple #8
0
 private void OnDataReceived(SocketClientId id, byte[] data)
 {
     DataReceived?.Invoke(id, data);
 }
Exemple #9
0
 private void OnConnected(SocketClientId id)
 {
     Connected?.Invoke(id);
 }
Exemple #10
0
 private void OnDataReceived(SocketClientId id, PacketReader packetReader)
 {
     DataReceived?.Invoke(id, packetReader);
 }
Exemple #11
0
 public SocketClient(Socket socket)
 {
     _socket = socket;
     _buffer = new byte[BufferSize];
     Id      = SocketClientId.New();
 }
Exemple #12
0
 private void SocketServerOnDisconnected(SocketClientId id, SocketClientDisconnectType disconnectType)
 {
     OnDisconnected(id, disconnectType);
 }
Exemple #13
0
 private void SocketServerOnConnected(SocketClientId id)
 {
     OnConnected(id);
 }
Exemple #14
0
 public void Disconnect(SocketClientId id)
 {
     _socketServer.Disconnect(id);
 }
Exemple #15
0
        public async void Send(SocketClientId id, PacketWriter packetWriter)
        {
            var bytes = packetWriter.GetBytes();

            await _socketServer.Send(id, bytes);
        }
 private static void ServerOnDisconnected(SocketClientId id, SocketClientDisconnectType disconnectType)
 {
     Console.WriteLine($"User disconnected with id: {id}, disconnectType: {disconnectType}");
 }
 public bool Equals(SocketClientId other)
 {
     return(_id == other._id);
 }